Typ einer Textdatei ändern

Anfängerfragen zum Programmieren mit PureBasic.
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

Typ einer Textdatei ändern

Beitrag 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?
PB 5.50; Win 7
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Typ einer Textdatei ändern

Beitrag von Andesdaf »

mittels ReadData() und WriteData(), dann musst du die Umwandlung aber selbst machen.
Win11 x64 | PB 6.20
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

Re: Typ einer Textdatei ändern

Beitrag von Angelo »

Danke für den Tipp!
PB 5.50; Win 7
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Typ einer Textdatei ändern

Beitrag von mk-soft »

Brauchst selber nicht wandeln

Ergebnis = WriteStringN(#Datei, Text$. #PB_Ascii) ... siehe Hilfe
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Typ einer Textdatei ändern

Beitrag 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

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten