Supportnet / Forum / Datenbanken
CR + LF in Textdatei abfragen - Fehler:5
Frage
Hallo!
Ich habe folgende Frage:
Beispiel: in einer beliebiegen Textdatei steht im ersten Satz an Postition 4 der ASCII-Wert 13(CR) und an Position 5 der ASCII-Wert 10 (LF).
Code-Beispiel:
Sub TestCRLF()
...
Dim x as String
Dim x2 as String
Dim strZeile as String
Open "c:\a.txt" For Binary Access Read As #1
Line Input #1, strZeile ' Zeile in Variable einlesen.
x = CHR(13)
x2 = Mid$(strZeile, 4, 1) 'Zuweisung liefert noch keinen Fehler - An Stelle 4 im Satz steht der ASCII-Wert 13
If x = x2 Then
MsgBox "X und X2 sind identisch"
Else
MsgBox "X und X2 sind ungleich"
End If
Close #1
End Sub
---------------
Es kommt die Meldung "X und X" sind ungleich"
Das verstehe ich nicht.
Weiß jemand einen Rat?
Gruß Freddy
Antwort 1 von MickK
Hallo Freddy, der Knackpunkt ist das Line Input Statement. Du hast die Datei für das zeichenweise Einlesen geöffnet, benutzt aber einen Befehl für das zeilenweise Einlesen, d.h. 'Line Input' liest die Datei bis Chr(13)Chr(10) und macht dann genau das was es soll: einen Zeilenumbruch mit Zeilenvorschub, beim nächsten Lesen wird die nächste Zeile gelesen. Also in Deiner Variablen wird CRLF nie vorhanden sein. Lese die Datei zeichenweise mit 'Input(n, #1)' wobei n die Anzahl der Zeichen ist.
Probier die Änderung in Deinem Code:
Gruss
Mick
Probier die Änderung in Deinem Code:
Dim x As String
Dim x2 As String
Dim strZeile As String
Open "c:\a.txt" For Binary Access Read As #1
'-- vier zeichen in variable einlesen
strZeile = Input(4, #1)
'--
x = Chr(13)
x2 = Mid$(strZeile, 4, 1) 'Zuweisung liefert noch keinen Fehler - An Stelle 4 im Satz steht der ASCII-Wert 13
If x = x2 Then
MsgBox "X und X2 sind identisch"
Else
MsgBox "X und X2 sind ungleich"
End If
Close #1
Gruss
Mick

