Forum: Programmieren allgemein
by mensch72,
17. Nov 2017
Stimmungen und Gefühle beim programmieren vermeide ich, weil letztendlich macht die CPU ja doch nur was man ihr gesagt hat und nicht das was man will.
(Selbst Frauen sind da einfacher, die machen zwar selten das was man ihnen sagt, aber oft doch das was (M)man will:) )
function IsUTF8(const data:TStream):boolean;
var
Value:BYTE;
begin
Result:=False;
data.Position:=0;
Forum: Programmieren allgemein
by mensch72,
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."...
Jedem das seine, die paar da geschrieben Code Zeilen ergeben genau DIE UNIVERSELLE Lösung, die man sogar noch per einem weiterem IF auf zusätzlich UTF16 erweitern kann... aber mach wie du willst, nur schimpfe nicht auf das...
Forum: Programmieren allgemein
by mensch72,
17. Nov 2017
Solange du nicht weißt, "was" es für Daten sind, vermeide in Delphi alles was mit Char oder String zu tun hat!
-> TBytes, TByteAarray oder ein TMemoryStream sind hier z.B. die passenden Speichertypen.
Dann kannst du es mit
try
Memo1.Text := DecodeUTF8toString(MemoryStream);
except
Memo1.Text := DecodeANSItoString(MemoryStream);
end;
oder
Forum: Programmieren allgemein
by mensch72,
17. Nov 2017
..."worin liegt der Unterschied"...
https://de.wikipedia.org/wiki/UTF-8
da steht viel Text, aber irgendwo in der Mitte steht, das "quasi" im UTF8 ByteArray nach einem HEX "11xxxxxx" stets mindestens ein weiteres Byte mit "10xxxxxx" folgen wird... und exakt das ist der Trick, wie man mit 98% Sicherheit sich selbst "ohne BOM" eine "IsUTF8" Funktion schreiben kann!
(Man geht davon aus, dass...