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