Seite 1 von 1

[4.6?] WriteStringFormat() und IDE

Verfasst: 14.04.2011 01:09
von Batze
Abend oder Morgen, je nachdem,

Habe unerklärliche und nicht reproduzierbare Fehler mit dem Erzeugen von Dateien in utf8. Mal kann z.B. die Datei nicht kompilieren, weil es angeblich in der ersten Zeile einen Fehler gibt, mal werden die Umlaute in der IDE nicht dargestellt.

Folgendes stellt in test2b.pb das € falsch dar. Mehr krieg ich leider nicht reproduziert, wirkt alles total willkürlich für mich. :freak:

unicode-test.pb

Code: Alles auswählen

; CreateFile(0, "test1b.pb")
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!")
; CloseFile(0)
  
CreateFile(0, "test2b.pb")
  WriteStringFormat(0, #PB_UTF8)
  WriteString(0, "debug "+#DQUOTE$+"Für 8 € säßen Kröten in der Sonne!"+#DQUOTE$)
CloseFile(0)
  
; CreateFile(0, "test3b.pb")
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!", #PB_Ascii)
; CloseFile(0)  
  
; CreateFile(0, "test4b.pb")
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!", #PB_UTF8)
; CloseFile(0)

; CreateFile(0, "test5b.pb")
;   WriteStringFormat(0, #PB_UTF8)
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!", #PB_UTF8)
; CloseFile(0)

IncludeFile "unicode-subtest.pb"
unicode-subtest.pb

Code: Alles auswählen

; CreateFile(0, "test1b.pb")
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!")
; CloseFile(0)
  
CreateFile(0, "test2b.pb")
  WriteStringFormat(0, #PB_UTF8)
  WriteString(0, "debug "+#DQUOTE$+"Für 8 € säßen Kröten in der Sonne!"+#DQUOTE$)
CloseFile(0)
  
; CreateFile(0, "test3b.pb")
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!", #PB_Ascii)
; CloseFile(0)  
  
; CreateFile(0, "test4b.pb")
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!", #PB_UTF8)
; CloseFile(0)

; CreateFile(0, "test5b.pb")
;   WriteStringFormat(0, #PB_UTF8)
;   WriteString(0, "Für 8 € säßen Kröten in der Sonne!", #PB_UTF8)
; CloseFile(0)
Kann das oder ähnliche Fehler irgendwer bestätigen?

Re: [4.6?] WriteStringFormat() und IDE

Verfasst: 14.04.2011 01:46
von STARGÅTE
Also wenn ich folgende Sachen beachte, funktioniert die erstellte Datei ohne Probleme:
  • Die Datei zum erzeugen des Code selbst muss UTF-8 sein (damit das €-Zeichen nicht zerstört wird, bevor es geschrieben wird)
  • Beim Kompilieren muss Unicode aktiv sein, sonst wird das €-Zeichen zur Laufzeit zerstört.
Wenn du Unicode nicht aktiviert hast, dann würde halt der UTF-8 String aus dem Code als ASCII geschrieben -> zerstörung aller Zeichen über 127
Wenn du UTF-8 der Code-Datei nicht aktivierst, dann ist das € Zeichen halt schon vorher weg.

Ein Fehler in der 1. Zeile hatte ich nie, vermutlich wurde bei dir der BOM nicht richtig erkannt, warum auch immer.

Re: [4.6?] WriteStringFormat() und IDE

Verfasst: 14.04.2011 04:32
von Batze
OK, ich verwerfe meine Fehlermeldung, ich weiß jetzt woran das mit dem Fehler liegt. Hab ich irgendwie nicht mit gerechnet.