# Brauche Hilfe bei Projekt! End if -Block ohne If-Block | dabei alles vorhanden!



## daDom (26. November 2003)

Ich habe mal wieder ein Problem bei meinem Datenbank-Vergleichsprogramm...

Hier der Code, und der Fehler:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub rechne_1()
'Hinweis
MsgBox "Es wird nun ein analysiert.", vbOKOnly, "Hinweis"
'TESTAusgabe in Listen? 0=nein 1=ja
ShowInList = 0
rechnefür2 = 0
'lblWarten.Caption = "Bitte warten..."
lstGefunden.Clear
Marker = 0
    'Zeilen einlesen
    Open CommonDialog1.FileName For Input As #1
    'So lange die Datei nicht zu Ende ist...
    If rechnefür2 = 1 Then
        Do While Not EOF(1)
*    End If 
////////Hier sagt das Programm mir: End if -Block ohne If-Block\\\\\\\
------ Allerdings sind doch gleich viele If - und End If's da!*
        'Datei auswählen und mit Variablen bezeichnen
        Input #1, Zeile1
'#################Name######################
TRAnzahl = 0
Data_Name = ""
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_Name = Data_Name & 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_Name)
                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                    If (Right$(Data_Name, 1) = ";") Then
                        Data_Name = Left(Data_Name, Len(Data_Name) - 1)
                    End If
                'Namen der liste hinzufügen
                If ShowInList = 1 Then
                    lstGefunden.AddItem (Data_Name)
                End If
                End If

'#################///Name######################

'#################Nachname######################
TRAnzahl = 0
Data_Nachname = ""

            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_Nachname = Data_Nachname & 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_Nachname)
                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                    If (Right$(Data_Nachname, 1) = ";") Then
                        Data_Nachname = Left(Data_Nachname, Len(Data_Nachname) - 1)
                    End If
                'Namen der liste hinzufügen
                If ShowInList = 1 Then
                    lstGefunden.AddItem (Data_Nachname)
                End If
                End If

'#################///Nachname######################

'#################Strasse######################
TRAnzahl = 0
Data_Strasse = ""

            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_Strasse = Data_Strasse & Mid$(Zeile1, Marker, 1)
                    'Loop'en, bis neues Trennzeichen gefunden
                    Loop Until (Mid$(Zeile1, Marker, 1) = ";") Or (Mid$(Zeile1, Marker, 1) = "")
                'Data Trimmen
                Data_Strasse = Trim(Data_Strasse)
                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                    If (Right$(Data_Strasse, 1) = ";") Then
                        Data_Strasse = Left(Data_Strasse, Len(Data_Strasse) - 1)
                    End If
                'Namen der liste hinzufügen
                If ShowInList = 1 Then
                    lstGefunden.AddItem (Data_Strasse)
                End If
                End If

'#################///Strasse######################

'#################Postleitzahl######################
TRAnzahl = 0
Data_Postleitzahl = ""

            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_Postleitzahl = Data_Postleitzahl & Mid$(Zeile1, Marker, 1)
                    'Loop'en, bis neues Trennzeichen gefunden
                    Loop Until (Mid$(Zeile1, Marker, 1) = ";") Or (Mid$(Zeile1, Marker, 1) = "")
                'Data Trimmen
                Data_Postleitzahl = Trim(Data_Postleitzahl)
                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                    If (Right$(Data_Postleitzahl, 1) = ";") Then
                        Data_Postleitzahl = Left(Data_Postleitzahl, Len(Data_Postleitzahl) - 1)
                    End If
                'Namen der liste hinzufügen
                If ShowInList = 1 Then
                    lstGefunden.AddItem (Data_Postleitzahl)
                End If
                End If

'#################///Postleitzahl######################

'#################Ort######################
TRAnzahl = 0
Data_Ort = ""

            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_Ort = Trim(Data_Ort)
                    'Wenn rechts ein Semikolon vorhanden, dies löschen
                    If (Right$(Data_Ort, 1) = ";") Then
                        Data_Ort = Left(Data_Ort, Len(Data_Ort) - 1)
                    End If
                'Namen der liste hinzufügen
                If ShowInList = 1 Then
                    lstGefunden.AddItem (Data_Ort)
                End If
                End If
Marker = 0
'#################///Ort######################
If ShowInList = 1 Then
lstGefunden1.AddItem ("/////////////////////////////////////////////////////")
End If
    If rechnefür2 = 1 Then
        Loop
    End If
    'Wenn fertig, dann Datei schliessen
    Close #1
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

*UND ANBEI DAS PROJEKT IM ANHANG*


----------



## ANI (26. November 2003)

hallo daDom,

habe mal dein Projekt analysiert und korrigiert.

Anbei Projekt zurück.

ANI


----------



## daDom (26. November 2003)

Super!

Vielen Dank!

grüsse
daDom


----------



## ANI (26. November 2003)

hallo daDom,

1. ändere deine Function folgendermassen ab:

Do While Not EOF(2)

     If EOF(2) Then

        Datei2Ende = 1
    Else
        [irgéndeine Funktion]

   End If

Loop

2. Close #2 bedeutet nur, das du das 2.Freefile geschlossen wird falls es offen ist.
Mache ich grundsätzlich so, da ich zu faul bin jedesmal ein neues Freefile zu bestimmen.

Code:

Close #2
Open .....
Do While Not EOF(2)
.......

ANI


----------



## ANI (26. November 2003)

noch eine kleine Korrektur

Do While Not EOF(2)

If EOF(2) Then

Datei2Ende = 1
exit do
Else
[irgéndeine Funktion]

End If

Loop

ANI


----------

