Autor Beitrag
luckyluke84
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54

WinXP
Lazarus
BeitragVerfasst: Mi 06.07.05 15:48 
Meine Prozedur soll aus einer kleinen Exe-Datei den Text in eine Memo-Box laden.
Aber Delphi gibt immer ein Debugger-Fehler aus wenn ich das Programm starte.
Wo hab ich den Fehler gemacht?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Procedure LoadFile(Src: String; Dest: TMemo);

var Dateilaenge : Integer;
    Buffer : Array of Char;
    Datei : File;
    Gelesen : Integer;
Begin
   Assign(Datei, Src);
   reset(Datei,1);

   Dateilaenge := FileSize(Datei);

   SetLength(Buffer, Dateilaenge);

   Blockread(Datei, Buffer, SizeOf(Buffer), Gelesen);
   Close(Datei);

   dest.SetTextBuf(pchar(Buffer[0]));  // dest.SetTextBuf(Buffer);  -> Inkompatible Type Array und Char
End;


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mi 06.07.05 16:46 
der fehler tritt schon beim blockread auf. ausserdem macht das was du vorhast keinen sinn, denn SetTextBuf erwartet einen mit #0 abgeschlossenen string. in einer binärdatei kommt das zeichen aber häufig vor, wodurch dein memo nur die zeichen vor dem ersten #0 anzeigt.

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
luckyluke84 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54

WinXP
Lazarus
BeitragVerfasst: Mi 06.07.05 16:55 
Wie kann ich sonst eine reine Textdatei in mein Memofeld laden?
pupsii
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 06.07.05 17:21 
Um eine gewöhnliche Textdatei in ein TMemo oder TRichEdit zu laden, braucht man meines Wissens nur einen Befehl:

ausblenden Delphi-Quelltext
1:
2:
3:
Memo1.Lines.LoadFromFile('C:\Test.txt');
//oder
RichEdit1.Lines.LoadFromFile('C:\Test.txt');


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.