Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Daten / Dateien / Unix

Unix-Dateien bearbeiten

Einleitung

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.

Beispiel

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

Code / Quelltext

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