Hallo,
Zitat:
Wenn Delphi-Code gepostet wird, wäre es schön, wenn der in Delphi-Tags gesetzt wird, dann bekommt man auch kein Augenkrebs
@Sir Rufo
@Erutan:
Sorry, konnte ich nicht wissen, dass das Memo Teil einer mehrschichtigen Geschichte ist.
Anstatt mit Writeln zu arbeiten, würde ich mal einen Filestream in die Runde werfen:
Delphi-Quellcode:
interface
TForm1 = class(TForm)
// Deklarationen muss man sich halt denken, nur das Wesentliche
private
{ Private-Deklarationen }
procedure LoadFromFile (const Filename : string);
procedure SaveToFile (const Filename : string);
public
{ Public-Deklarationen }
end;
implementation
procedure TForm1.LoadFromFile (const Filename : string);
var
s : TFileStream;
function Load (Stream : TFileStream) : string;
var
l : Integer;
b : array of Char;
begin
Result := '';
Stream.ReadBuffer (l, SizeOf (Integer));
Inc (l);
SetLength (b, l);
try
Stream.ReadBuffer (b [0], l - 1);
Result := string (b);
finally
Finalize (s)
end
end;
begin
s := TFileStream.Create ('c:\test.txt', fmOpenRead);
try
s.Seek (0, soFromBeginning);
EditName.Text := Load (s);
EditMail.Text := Load (s);
EditPasswort.Text := Load (s);
// etc.
finally
FreeAndNil (s)
end
end;
procedure TForm1.SaveToFile (const Filename : string);
var
s : TFileStream;
procedure Save (Stream : TFileStream; const Str : string);
var
l : Integer;
begin
l := Length (Str);
Stream.WriteBuffer (l, SizeOf (Integer));
Stream.WriteBuffer (Str [1], l)
end;
begin
s := TFileStream.Create (Filename, fmCreate);
try
try
Save (s, EditName.Text);
Save (s, EditMail.Text);
Save (s, EditPasswort.Text);
// etc.
except
// Was auch immer zu tun ist wenn das Einlesen scheitert
end;
finally
FreeAndNil (s)
end
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
LoadFromFile ('ein dateiname.erweiterung');
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
SaveToFile ('ein dateiname.erweiterung')
end;
Gruß