Datei ist doch Ascii Codiert

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Hartmut hat geschrieben:@kaeru
Stimmt ... der Requester geht ja auch auf :)
nein mein guter, ich meinte nicht deinen OpenFileRequester,
sondern Tills MessageRequester, der das fehlschlagen der öffnung anzeigt.
wenn der filename nicht stimmen würde, würde Till seinen eigenen MsgReq sehen,
und so blöd ist er bestimmt nicht, dann zu fragen, warum ReadString nicht funktioniert.
was ja auch garnicht sein kann, da er ja schreibt
wenn ich das File mit ReadString(0,#PB_Ascii)
auslese bekomme ich statt der Umlaute andere Zeichen in der Debugconsole
also, die datei wird zweifelsfrei gefunden und geöffnet,
lediglich die codierung wird verhunzt.

[edit]
und mir kommt grad der gedanke, ob nicht vielleicht sogar die debugger-ausgabe das problem verursacht, nicht das einlesen...
[/edit]

und ich bleibe dabei, ich wette, die datei ist nicht ANSI sondern UTF-8 oder Unicode.
solange bis du bei deinem befehl ein ausdrückliches #PB_Ascii einfügst,
hängt das von deinen compilereinstellunen ab was er tut.

da ich die fragliche Datei nicht zur hand habe, kann ich nicht feststellen, wie sie codiert ist.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
gnozal
Beiträge: 219
Registriert: 04.12.2004 13:01
Wohnort: Frankreich (67)
Kontaktdaten:

Beitrag von gnozal »

Code: Alles auswählen

; 
; Convert ASCII file to ANSI 
; 
TextFile.s = "c:\Ascii.txt" ; result in Ascii.txt.ANSI.txt 
; 
Stream = ReadFile(#PB_Any, TextFile) 
If Stream 
  BufferLen = Lof(Stream) 
  *Buffer = AllocateMemory(BufferLen) 
  If *Buffer
    ReadData(Stream, *Buffer, BufferLen) 
  EndIf
  CloseFile(Stream) 
  If *Buffer
    OemToChar_(*Buffer, *Buffer) ; in ANSI mode, you can use the same buffer (NOT in unicode)
    Stream = OpenFile(#PB_Any, TextFile + ".ANSI.txt") 
    If Stream 
      WriteData(Stream, *Buffer, BufferLen) 
      CloseFile(Stream) 
    EndIf 
    FreeMemory(*Buffer) 
  EndIf
EndIf
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
Onkel-Till
Beiträge: 22
Registriert: 08.03.2007 17:27
Wohnort: Hamburg

Beitrag von Onkel-Till »

gnozal hat wie immer den Nagel auf den Kopf getroffen :)

Vielen Dank das erspart mir viel arbeit vorallem viele Telefonate
mit dem Softwarehaus ;)
Antworten