Problem mit ReadString in UTF-16-Datei
Verfasst: 19.04.2018 02:22
Hallo,
angenommen, ich habe eine Unicode-Textdatei (UTF-16) folgenden Inhalts:
(D:\Texte\Asteriskus.txt ist die Datei von oben). Nun sollte man meinen, daß Debug Za '3' ausspuckt, da ja drei Asterisken in der Datei oben enthalten sind. Das ist aber nicht der Fall, sondern es wird '2' ausgegeben.
Dieser Fehler tritt nicht auf, wenn man die Textdatei ins Format ANSI oder UTF-8 konvertiert und das Flag im ReadFile-Befehl in #PB_Ascii bzw. #PB_UTF8 ändert. Irgendwie scheint PureBasic Probleme mit UTF-16-Dateien zu haben. Oder hat jemand eine Erklärung, warum der erste Asteriskus dort übersprungen wird?
Vielen Dank
angenommen, ich habe eine Unicode-Textdatei (UTF-16) folgenden Inhalts:
und will die Anzahl der in dieser Datei vorkommenden '*' zählen, mit folgendem kleinen Programm:*
Text 1
*
Text 2
*
Text 3
Code: Alles auswählen
Define Zk.s, Za
ReadFile(1, "D:\Texte\Asteriskus.txt", #PB_Unicode)
While Not Eof(1)
Zk=ReadString(1)
If Zk="*"
Za+1
EndIf
Wend
Debug Za
CloseFile(1)
Dieser Fehler tritt nicht auf, wenn man die Textdatei ins Format ANSI oder UTF-8 konvertiert und das Flag im ReadFile-Befehl in #PB_Ascii bzw. #PB_UTF8 ändert. Irgendwie scheint PureBasic Probleme mit UTF-16-Dateien zu haben. Oder hat jemand eine Erklärung, warum der erste Asteriskus dort übersprungen wird?
Vielen Dank