Einzelnen Beitrag anzeigen

Zwoetzen

Registriert seit: 19. Sep 2007
Ort: Ilmenau
93 Beiträge
 
Delphi 2009 Professional
 
#4

Re: [UniSynEdit] Zugriffsverletzung bei SynGen

  Alt 11. Feb 2009, 10:36
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
  Mit Zitat antworten Zitat