Seite 1 von 1
Typ einer Textdatei ändern
Verfasst: 18.02.2015 17:42
von Angelo
Ich habe in einer Textdatei vom UTF-8-Format alle Unicode-Zeichen durch Ascii-Zeichen ersetzt und möchte nun diese Datei im Ascii-Typ haben. Klar, ich kann die Datei in einem Texteditor öffnen und dann beim Speichern Ascii als Typ einstellen. Aber kann man dies auch mit PB machen, ohne dass man die Datei zeilenweise ausliest und dann per WriteN-Befehl mit #PB_Ascii-Flag wieder zusammenbastelt?
Re: Typ einer Textdatei ändern
Verfasst: 18.02.2015 18:00
von Andesdaf
mittels ReadData() und WriteData(), dann musst du die Umwandlung aber selbst machen.
Re: Typ einer Textdatei ändern
Verfasst: 18.02.2015 19:09
von Angelo
Danke für den Tipp!
Re: Typ einer Textdatei ändern
Verfasst: 18.02.2015 21:54
von mk-soft
Brauchst selber nicht wandeln
Ergebnis = WriteStringN(#Datei, Text$. #PB_Ascii) ... siehe Hilfe
Re: Typ einer Textdatei ändern
Verfasst: 18.02.2015 22:38
von mk-soft
Beispiel... Compilermode Unicode
Code: Alles auswählen
Define file.s, result.s, ext.s
Define ff
Global NewList lines.s()
file.s = OpenFileRequester("Öffnen", "", "",0)
If file
ReadFile(0, file)
ff = ReadStringFormat(0)
Select ff
Case #PB_Ascii : result = "Kein BOM gefunden. Dies kennzeichnet üblicherweise eine normale Textdatei."
Case #PB_UTF8 : result = "UTF-8 BOM gefunden."
Case #PB_Unicode: result = "UTF-16 (Little Endian) BOM gefunden."
Case #PB_UTF16BE: result = "UTF-16 (Big Endian) BOM gefunden."
Case #PB_UTF32 : result = "UTF-32 (Little Endian) BOM gefunden."
Case #PB_UTF32BE: result = "UTF-32 (Big Endian) BOM gefunden."
EndSelect
Debug result
While Not Eof(0)
AddElement(lines())
lines() = ReadString(0, FF)
Wend
Debug "Lines: " + Str(ListSize(lines()))
CloseFile(0)
file = SaveFileRequester("Speichern", "", "Ascii|*.asc;UTF8|*utf8;Unicode|*.unicode",0)
If file = ""
End
EndIf
ext = LCase( GetExtensionPart(file))
Select ext
Case "asc" : ff = #PB_Ascii
Case "utf8" : ff = #PB_UTF8
Case "unicode" : ff = #PB_Unicode
Default
Debug "Kein Format angegeben"
End
EndSelect
If CreateFile(0, file)
WriteStringFormat(0, ff)
ForEach lines()
WriteStringN(0, lines(), ff)
Next
CloseFile(0)
EndIf
Debug "Fertig."
EndIf