Loop ohen Do?

daDom

Erfahrenes Mitglied
Kann es sein, das die Funktion "Do-Loop" nach einer bestimmten anzahl an zeilen seinen Dienst nicht mehr tut?

Ich hab hier so ne Funktion, aber da funktioniert nix...

Fehlermeldung: Loop ohne Do!

PHP:
Do
        If (Data_Nachname = Data_Nachname1) _
        & (Data_Strasse = Data_Strasse1) _
        & (Data_Ort = Data_Ort1) Then
            Marker = Marker
        Else
            lstÄnderungen.AddItem ("In Zeile " & lstGefunden.ListIndex _
            & " wurde ein zu löschender Eintrag gefunden (" _
            & Data_Nachname & ";" & Data_Strasse & ";" & Data_Ort)
        End If
                                Zeile1 = ""
                                lstGefunden1.Clear
                                Marker = 0
                                    'Zeilen einlesen
                                    Open CommonDialog2.FileName For Input As #2
                                    'So lange die Datei nicht zu Ende ist...
                                    Do While Not EOF(2)
                                        'Datei auswählen und mit Variablen bezeichnen
                                        Input #2, Zeile1
                                '#################Name1######################
                                TRAnzahl = 0
                                Data_Name1 = ""
                                Marker = 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
                                            
                                                'Wenn 1. Trennzeichen gefunden... -> Vorname
                                                If TRAnzahl = 1 Then
                                                ''''''''''''''''''''''''''''''''''''
                                                Marker = 0
                                                    Do
                                                        Marker = Marker + 1
                                                        'Name filtern
                                                        Data_Name1 = Data_Name1 & Mid$(Zeile1, Marker, 1)
                                                    'Loop'en, bis neues Trennzeichen gefunden
                                                    Loop Until (Mid$(Zeile1, Marker, 1) = ";") Or (Mid$(Zeile1, Marker, 1) = "")
                                                'Data Trimmen
                                                Data_Name = Trim(Data_Name1)
                                                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                                                    If (Right$(Data_Name1, 1) = ";") Then
                                                        Data_Name1 = Left(Data_Name1, Len(Data_Name1) - 1)
                                                    End If
                                                'Namen der liste hinzufügen
                                                If ShowInList = 1 Then
                                                    lstGefunden1.AddItem (Data_Name1)
                                                End If
                                                End If
                                                
                                '#################///Name1######################
                                
                                '#################Nachname1######################
                                TRAnzahl = 0
                                Data_Nachname1 = ""
                                
                                            For Marker = Marker 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
                                            
                                                'Wenn 2. Trennzeichen gefunden... -> Nachname
                                                If TRAnzahl = 1 Then
                                                    Do
                                                        Marker = Marker + 1
                                                        'Name filtern
                                                        Data_Nachname1 = Data_Nachname1 & Mid$(Zeile1, Marker, 1)
                                                    'Loop'en, bis neues Trennzeichen gefunden
                                                    Loop Until (Mid$(Zeile1, Marker, 1) = ";") Or (Mid$(Zeile1, Marker, 1) = "")
                                                'Data Trimmen
                                                Data_Nachname = Trim(Data_Nachname1)
                                                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                                                    If (Right$(Data_Nachname1, 1) = ";") Then
                                                        Data_Nachname1 = Left(Data_Nachname1, Len(Data_Nachname1) - 1)
                                                    End If
                                                'Namen der liste hinzufügen
                                                If ShowInList = 1 Then
                                                    lstGefunden1.AddItem (Data_Nachname1)
                                                End If
                                                End If
                                
                                '#################///Nachname1######################
                                
                                
                                '#################Strasse1######################
                                TRAnzahl = 0
                                Data_Strasse1 = ""
                                
                                            For Marker = Marker 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
                                            
                                                'Wenn 3. Trennzeichen gefunden... -> Strasse
                                                If TRAnzahl = 1 Then
                                                    Do
                                                        Marker = Marker + 1
                                                        'Name filtern
                                                        Data_Strasse1 = Data_Strasse1 & Mid$(Zeile1, Marker, 1)
                                                    'Loop'en, bis neues Trennzeichen gefunden
                                                    Loop Until (Mid$(Zeile1, Marker, 1) = ";") Or (Mid$(Zeile1, Marker, 1) = "")
                                                'Data Trimmen
                                                Data_Strasse1 = Trim(Data_Strasse1)
                                                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                                                    If (Right$(Data_Strasse1, 1) = ";") Then
                                                        Data_Strasse1 = Left(Data_Strasse1, Len(Data_Strasse1) - 1)
                                                    End If
                                                'Namen der liste hinzufügen
                                                If ShowInList = 1 Then
                                                    lstGefunden1.AddItem (Data_Strasse1)
                                                End If
                                                End If
                                
                                '#################///Strasse1######################
                                
                                '#################Postleitzahl1######################
                                TRAnzahl = 0
                                Data_Postleitzahl1 = ""
                                
                                            For Marker = Marker 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
                                            
                                                'Wenn 4. Trennzeichen gefunden... -> Postleitzahl
                                                If TRAnzahl = 1 Then
                                                    Do
                                                        Marker = Marker + 1
                                                        'Name filtern
                                                        Data_Postleitzahl1 = Data_Postleitzahl1 & Mid$(Zeile1, Marker, 1)
                                                    'Loop'en, bis neues Trennzeichen gefunden
                                                    Loop Until (Mid$(Zeile1, Marker, 1) = ";") Or (Mid$(Zeile1, Marker, 1) = "")
                                                'Data Trimmen
                                                Data_Postleitzahl1 = Trim(Data_Postleitzahl1)
                                                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                                                    If (Right$(Data_Postleitzahl1, 1) = ";") Then
                                                        Data_Postleitzahl1 = Left(Data_Postleitzahl1, Len(Data_Postleitzahl1) - 1)
                                                    End If
                                                'Namen der liste hinzufügen
                                                If ShowInList = 1 Then
                                                    lstGefunden1.AddItem (Data_Postleitzahl1)
                                                End If
                                                End If
                                
                                '#################///Postleitzahl1######################
                                
                                '#################Ort1######################
                                TRAnzahl = 0
                                Data_Ort1 = ""
                                
                                            For Marker = Marker 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
                                            
                                                'Wenn 5. Trennzeichen gefunden... -> Ort
                                                If TRAnzahl = 1 Then
                                                    Do
                                                        Marker = Marker + 1
                                                        'Name filtern
                                                        Data_Ort = Data_Ort & Mid$(Zeile1, Marker, 1)
                                                    'Loop'en, bis neues Trennzeichen gefunden
                                                    Loop Until (Mid$(Zeile1, Marker, 1) = ";") Or (Mid$(Zeile1, Marker, 1) = "")
                                                'Data Trimmen
                                                Data_Ort1 = Trim(Data_Ort1)
                                                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                                                    If (Right$(Data_Ort1, 1) = ";") Then
                                                        Data_Ort1 = Left(Data_Ort1, Len(Data_Ort1) - 1)
                                                    End If
                                                'Namen der liste hinzufügen
                                                If ShowInList = 1 Then
                                                    lstGefunden1.AddItem (Data_Ort1)
                                                End If
                                                End If
                                Marker = 0
Loop Until EOF(2)
 
Ich bin jetzt kein VB Kenner, aber beim Durchzählen komm ich auf 7 DOs, aber nur 6 LOOPs, also eher ein DO ohne LOOP...
Spontan würde mir ein LOOP bei dem Stück hier irgendwo fehlen:
PHP:
...
Do While Not EOF(2)
'Datei auswählen und mit Variablen bezeichnen
Input #2, Zeile1
...
Aber wie gesagt, ich bin kein VB-Kenner und finde VB-Code auch nicht wirklich übersichtlich :-)

Sollte das jetzt absolut nicht geholfen haben, sorry ;)

Peter
 
Zurück