Eine VB-Frage



  • Hi,

    hier sind doch bestimmt auch einige VB-Programmierer dabei.

    Ich habe werder ein Buch, noch ein Tutorial (gibt es eigentlich ueberhaupt Tutorials fuer VB?), deshalb frage ich: wie ermittle ich die Laenge eines Strings?

    Beispie:

    dim str as string, length as integer
    str="hallo"
    length=pseudofunktion(str)
    

    Und noch eine Frage: In C++ ermittle ich die einzelnen Zeichen ueber den offsetoperator. Wie wird das in VB gemacht? fangen da die elemente auch mit null an und enden mit \0?

    for i=0 to 5
        print str[i] 'bloss nur noch in der vb syntax...
    next
    

    Danke schon mal...



  • Funktion zum Ermitteln der Stringlänge ist "Len(Zeichenfolge)"

    Ansonstes ist der VB-String eine recht umfangreiche Klasse. Da musst du dich mal auf die Suche nach einer Funktionsliste machenh, die kenn ich nicht alle. 🙂



  • Griese schrieb:

    Hi,

    Und noch eine Frage: In C++ ermittle ich die einzelnen Zeichen ueber den offsetoperator. Wie wird das in VB gemacht? fangen da die elemente auch mit null an und enden mit \0?

    generell beginnt VB bei 1 zu zaehlen, auch bei Strings und Arrays.Auf Array-Elemente greift man mit den normalen () - Klammern zu, aber ob ein

    dim foo as String
    foo = bar
    msgbox foo(2)
    

    wirklich a ausgibt, weiss ich nicht... IIRC geht das nur ueber die mid() - Funktion, die eine gewisse Anzahl Zeichen aus der Mitte eines Strings extrahiert.

    Also in etwa so:

    dim foo as String
    foo = bar
    msgbox mid(foo,2, 1) ' extrahiert aus String foo ab dem 2. Zeichen 1 Zeichen
    

    bei den Parametern von mid() bin ich mir nicht mehr ganz sicher, muessten aber in etwa so sein wie ich gesagt hab, evtl. hilft dir sicher die msdn: msdn.microsoft.com 🙂



  • Ich habe werder ein Buch, noch ein Tutorial (gibt es eigentlich ueberhaupt Tutorials fuer VB?)

    Einer der größten Vorteile dieser Sprache ist ihre einfache Erlenerbarkeit

    deshalb frage ich: wie ermittle ich die Laenge eines Strings?

    Len("dein_String")
    

    VB Strings haben kein \0 am Ende, ihr ende muss man immer mit Len(string) ermitteln

    Du hast folgende Möglichkeiten, um an irgendein offset in einem string heranzu kommen:

    Dim abyteText() As Byte 'Deklaration als Bytearray
    Dim strText As String 'Deklaration as string
    
    strText = "abcde" 
    abyteText = strText 'die zuweisung von string an dynamische arrays ist kein Problem
    
    MsgBox Mid(strText, 3, 1)
    MsgBox Chr(abyteText(2 * 2)) 'das "* 2" ergibt sich daraus, dass VB Strings intern immer Wide und nicht ASCII sind.
    

    Arrays können jede beliebige Basis haben
    z.B.

    Dim a(5 to 10) As string
    

    Ohne Angabe der Basis ist die Basis default "0"

    In VBA (Word, Excel, Access) ist die Basis aller Anwendungsobjekte allerdings immer "1"


Anmelden zum Antworten