Forum: Programmieren allgemein
by LTE5,
18. Nov 2017
Ich habe mich an der ganzen Sache nun mal versucht. Schöner bekomme ich es leider nicht hin
function ByteToHex(AByte: Byte): string;
const
Digits: array of char = '0123456789ABCDEF';
begin
Result := Digits + Digits;
end;
Forum: Programmieren allgemein
by LTE5,
18. Nov 2017
Ich gucke einfach ob Fehler auftreten und erst dann ändere ich was. Richtig verstanden habe ich das eh nicht und dieses Byte-geschupse mit Streams... davon halte ich mich eh fern ;)
Ich arbeite mit strings, nicht mit utf8strings.
Forum: Programmieren allgemein
by LTE5,
18. Nov 2017
Danke für die Erklärung.
Könnte haarig werden. Ich verwende hier und dort TFile.AppendAllText. Hier kann ich ja einfach TEncoding.Unicode dranhängen.
Wie ich es beim LESEN mache (TFile.ReadAllText), muss ich noch gucken. Vielleicht eine kleine INterposer-Klasse für TFile oder so, wo ich dann im überschriebenem ReadAllText das Encoding prüfe.. Mal gucken
Habe nun diese drei...
Forum: Programmieren allgemein
by LTE5,
18. Nov 2017
Ich habe nur Ini-Dateien bei denen die Section-Namen sowie wenn überhaupt eine Hand voll Bezeichner Alle Zeichen enthalten könnten. Aktuell aber nur westliche Zeichen.
Was ich bisher herausgefunden habe:
versuche ich eine Ini-Datei mit TEncoding.UTF8 zu laden und es ist keine > Fehlermeldung
versuche ich eine Ini-Datei mit TEncoding. BigEndian zu laden und es ist keine > keine Fehlermeldung...
Forum: Programmieren allgemein
by LTE5,
17. Nov 2017
Ich dachte man überprüft verschiedene Encodings so wie mein versuch da oben.
Nur mein Code da oben gibt $BBEF zurück, obwohl meine Datei UTF8 sogar mit BOM ist.
Am liebsten wäre mir natürlich alles ohne Streams. Es gibt nichts was ich mehr hasse als Streams.
Außerdem habe ich keine Ahnung woher ich Streams bekommen soll an den Stellen wo ich diese Prüfung durchführen müsste.
Mit Streams...
Forum: Programmieren allgemein
by LTE5,
17. Nov 2017
Ich glaube greenmiles erster Satz aus Beitrag #20 spiegelt gerade meine Stimmung wieder
http://www.delphipraxis.net/180079-eencodingerror-fehler-3.html
Ich habe nicht mal Ahnung von Encodings. Denkst du wirklich ich habe Ahnung von dem was in #6 steht? Nee ;)
ich bin ja nicht so, also hab ichs versucht. Ging nur leider in die hose. Egal welche Datei ich reinwerfe, es ist immer False.
...
Forum: Programmieren allgemein
by LTE5,
17. Nov 2017
Ich sehe keine Möglichkeit die oben genannten Codezeilen in eine Ini-Klasse einzubauen.
Da steht zwar "IsUTF8" aber davon habe ich ja eben keine Ahnung.
Ich verstehe es nicht einmal und werde es auch nie verstehen. Code soll einfach nur funktionieren und das machen was man ihm sagt. Ich habe keine Lust mich mit 100 verschiedenen Encodings rumschlagen zu müssen.
Habe meine Version aus #1...
Forum: Programmieren allgemein
by LTE5,
17. Nov 2017
Da ich eine universelle Lösung brauche für das Laden von Textdateien UND das Laden/Speichern von Ini-Dateien, kann ich das leider nicht gebrauchen.
Ich belasse von nun an aber alles so wie ich es aktuell habe, da es funktioniert.
Dieser ganze Encoding-Kram ist doch der Wahnsinn!
Forum: Programmieren allgemein
by LTE5,
17. Nov 2017
Ich glaube ich bleibe bei meiner Ini-Ableitung definitiv bei der Zeile inherited Create(aFileName); ohne Encoding-Hexerei.
So gibt es keine Fehlermeldung. Wenn jemand meint eine Datei unbedingt selber bearbeiten zu müssen, ist es in diesem Falle das eigene Pech.
Ansonsten habe ich jetzt alle meine Dateien auf UTF8 ohne BOM umgestellt, da selbst Windows neue Dateien so anlegt.
Meinen Code aus...
Forum: Programmieren allgemein
by LTE5,
17. Nov 2017
Sollte man dementsprechend auch TMemIniFile.Create mit TEncoding.UTF8 aufrufen? Wenn die Datei schon existiert aber nicht im UTF8-Format, gibts eine schöne Fehlermeldung.
Und:
Memo LoadFromFile ... muss ich dort nun auch TEncoding.UTF8 angeben? Weil wenn die Datei zufälligerweise kein UTF8 ist, gibt es auch eine Fehlermeldung.