
08.07.2011, 01:55
|
 |
Специалист
|
|
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
|
|
lmikle что то вроде этого?
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
fs: TFileStream;
pl: PMyList;
l: Integer;
s: String;
b: Boolean;
begin
if OpenDialog1.Execute then begin
FormDestroy (Sender);
fs := TFileStream.Create (OpenDialog1.FileName, fmOpenRead);
while fs.Position < fs.Size do begin
fs.ReadBuffer (l, SizeOf(l));
SetLength (s, l);
fs.ReadBuffer (Pointer(s)^, l);
fs.ReadBuffer (b, SizeOf(b));
New (pl);
pl.obj := s;
pl.buffer := b;
if List = nil then begin
pl.rnext := nil;
pl.lnext := nil;
pl.root := pl;
end
else begin
pl.rnext := nil;
pl.lnext := List;
pl.root := List.root;
List.rnext := pl;
end;
List := pl;
end;
fs.Free;
LoadListToForm;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
fs: TFileStream;
pl: PMyList;
l: Integer;
s: String;
b: Boolean;
begin
if SaveDialog1.Execute then begin
fs := TFileStream.Create (SaveDialog1.FileName, fmCreate);
pl := List.root;
while pl <> nil do begin
s := pl.obj;
l := Length (s);
b := pl.buffer;
fs.WriteBuffer (l, SizeOf(l));
fs.WriteBuffer (Pointer(s)^, l);
fs.WriteBuffer (b, SizeOf(b));
pl := pl.rnext;
end;
fs.Free;
end;
end;
|