Kontakt
DSVGO
Falls man Dateien von einem anderen Betriebssystem bearbeitet (z.B. nach einem HTML-Download), so funktioniert oft das Line Input-Statement nicht wie gewohnt. Erleben kann man dieses auch, wenn man mit Notepad eine Unix-Datei öffnet: Man findet nur seltsame Zeichen, wo man eigentlich Zeilenumbrüche erwarten würde.
Beispielsweise sind in dem HTML-Code höchstwahrscheinlich nur Zeilenvorschübe, aber keine Zeilenumbrüche enthalten. In Unix reicht dies für einen ordentliche Darstellung, in Windows eben nicht.
Das folgende Code-Fragment lädt eine HTML-Seite, konvertiert diese in ein Windows-genehmes Format, und speichert das Resultat dann in eine Datei.
Dim sUnix As String Dim sWin As String sUnix = OpenURL("http://vb-tec.de/") sWin = Unix2Windows(sUnix) WriteFile "C:\Test\seite.txt", sWin
Die Funktion prüft zuerst, ob bereits ein Windows-Zeilenumbruch vorhanden ist. Falls ja, so braucht (und darf!) keine Konvertierung gemacht werden. Andernfalls werden alle Zeilenvorschübe in "richtige" Umbrüche konvertiert.
Function Unix2Windows(ByRef s As String) As String 'Ist Zeilenumbruch vorhanden? If CBool(InStr(s, vbNewline)) Then 'Ja: Unix2Windows = s Else 'Nein: Unix2Windows = Replace(s, vbLf, vbNewline) End IF End Function
Die Umkehrfunktion ist noch einfacher, da bei ihr nur verkürzt wird:
Function Windows2Unix(ByRef s As String) As String Windows2Unix = Replace(s, vbNewLine, vbLf) End Function
Ich empfehle übrigens die Verwendung der "Blitzschnellen Replace-Funktion" (nicht nur für VB4/5).
© Jost Schwider, 01.09.2001-01.09.2001 - http://vb-tec.de/unixfile.htm