Okay, habe den Fehler gefunden und konnte ihn beheben:
Beim Reinladen der .msg-Datei (via Stream) wurde der Inhalt komplett zerstört (bzw falsch interpretiert), sodass zB statts "AB" irgendein chinesisches/japanisches Zeichen dabei rauskam. Habe nun das Reinladen der Datei anstatt über einen Stream über eine TStringList realisiert, und nun funktioniert auch alles so, wie es soll: Das Programm läuft durch und tut das, was es soll
(kA ob das auch über Streams zu reparieren gewesen wäre... Hab noch nie mit Streams gearbeitet ^^)
Der geänderte Code:
(Der auskommentierte Teil ist der ursprüngliche Code)
Delphi-Quellcode:
procedure TFrmMain.BtnStartClick(Sender: TObject);
var
SL: TStringList; // <-- ADDED
begin
ClearAll;
Screen.Cursor := crHourGlass;
// BEGIN EDIT
SL := TStringList.Create;
SL.LoadFromFile(OpenDialog.FileName);
Lex.Origin := PWideChar(SL.Text);
SL.Free;
(*
Stream.Clear;
Stream.LoadFromFile(OpenDialog.FileName);
Lex.Origin := Stream.Memory;
*)
// END EDIT
Lex.Tokenize; // <-- Hier drin hats immer geknallt, weil der Dateiinhalt falsch interpretiert wurde
[...]
end;
MfG Zwoetzen