Mid$-Problem.

daDom

Erfahrenes Mitglied
PHP:
TRAnzahl = 0
            #Für 'File1TR' von anfang bis Zeilenlänge Zeichen für Zeichen durchgehen
            For Marker = 1 To Len(Zeile1)
                #Wenn  ";" in Zeile gefunden...
                If (Mid$(Zeile1, Marker, 1) = ";") Then
                    #Anzahl der Trennzeichen einen zuzählen (+1)
                    TRAnzahl = TRAnzahl + 1
                    #For-Schleife beenden
                    Exit For
                End If
            Next Marker
                   If TRAnzahl = 1 Then
                    Do
                        Marker = Marker + 1
                        #Name filtern
                         [Problem---------------------------------------]
                        Data_Name = Data_Name & Mid$(Zeile1, Marker , 1)
                        [/Problem---------------------------------------]
                    #Loop'en, bis neues Trennzeichen gefunden
                    Loop Until Mid$(Zeile1, Marker, 1) = ";"
                #Namen der liste hinzufügen
                lstGefunden.AddItem (Data_Name)

Dies ist ein Teil des Codes von einem Programm, das ich gerade code.
Ich möchte aus einer Zeile bestimmte Namen/Adressen etc auslesen.

Wir ihr erkennt, ist dort eine Loop-Schleife, die so lange Loop't, bis das Trennzeichen (;) in der Zeile erkannt worden ist.

So lange soll das Programm mit der Funktion "Mid$" Zeichen für Zeichen bis zu diesem Trennzeichen den Namen, oder was auch imemr dort steht ausgeben.

Doch "Mid$" fängt immer an der gleichen Stelle an, wo der marker auch ist.

Heisst, das der Falsche Name/Adresse etc. ausgelesen wird:
Dies ist die Zeile:
Burkhard; Mast-Weisz;Rathaus;;Remscheid
Nach der oben genannten Funktion liest das Programm Mast-Weisz; aus und nicht Burkhard :(

Wie kann ich nun das richtige, nämlich den Namen, auslesen?
 
Original geschrieben von daDom
Code:
TRAnzahl = 0
            #Für 'File1TR' von anfang bis Zeilenlänge Zeichen für Zeichen durchgehen
            For Marker = 1 To Len(Zeile1)
                #Wenn  ";" in Zeile gefunden...
                If (Mid$(Zeile1, Marker, 1) = ";") Then
                    #Anzahl der Trennzeichen einen zuzählen (+1)
                    TRAnzahl = TRAnzahl + 1
                    #For-Schleife beenden
                    Exit For
                End If
            Next Marker
                   If TRAnzahl = 1 Then
                    Marker = 0
                    Do
                        Marker = Marker + 1
                        #Name filtern
                         [Problem---------------------------------------]
                        Data_Name = Data_Name & Mid$(Zeile1, Marker , 1)
                        [/Problem---------------------------------------]
                    #Loop'en, bis neues Trennzeichen gefunden
                    Loop Until Mid$(Zeile1, Marker, 1) = ";"
                #Namen der liste hinzufügen
                lstGefunden.AddItem (Data_Name)
Du musst den Zähler zurücksetzen.
Kennst du InStr() ?
 
Zuletzt bearbeitet:
Jo, so funktionierts!

Ja, ich kenne auch Instr() - hab aber noch nie mit gearbeitet...

Kann ich von in VB irgendwie Leerzeichen wegkürzen?
Bei PHP gibts ja trim() aber geht das auch mit VB?

Und ich hab hintenan immer noch das Trennzeichen dran hängen :(
Dieses Semikolon nämlich.
Wie bekomm ich das weg?
 
Such mal in der Hilfe nach Trim(),LTrim() und RTrim().
Wegen dem Trennzeichen, versuchs mal mit einer kopfgesteuerten Schleife.

Den Namen könntest du auch raussuchen indem du mit InStr() die Position des Trennzeichens ermittelst und dann ohne Schleife mit einer Mid()-Anweisung vom Anfang bis zur von InStr() gefundenen Position liest.
 
Zuletzt bearbeitet:
Zurück