Mam procedurę zapisującą
procedure TForm1.zapisz;
var
i : integer;
begin
setlength(buff_string,1);
AssignFile(Plik,'opek.dto');
Rewrite(Plik,1);
buff_string[0] := inttostr(memo1.lines.count - 1);
BlockWrite(Plik,buff_string[0],1);
for i:=0 to memo1.lines.count - 1 do
begin
buff_string[0] := memo1.lines[i];
BlockWrite(Plik,buff_string[0],i + 2);
end;
CloseFile(Plik);
end;
i procedurę otwierającą
procedure TForm1.otworz;
var
i : integer;
lines_count : integer;
begin
memo1.lines.clear;
setlength(buff_string,1);
AssignFile(Plik,'opek.dto');
Reset(Plik,1);
Seek(plik,1);
Blockread(Plik,buff_string[0],1);
buff := strtoint(buff_string[0]);
for i:=2 to buff do
begin
Blockread(Plik,buff_string[0],i);
memo1.lines.add(buff_string[0]);
end;
CloseFile(Plik);
end;
teraz przy otwieraniu pliku wywala mi jakieś raise exception Access violation itp. itd.
Fajnie jakby ktoś poprawił ten kod - idea ma polegać na zapisywaniu linii z memo1 do pliku ale pierwsza linijka pliku zawsze będzie zawierała informację o ilości lini w memo - aby w memo mozna bylo odczytac for i:= to liczba z tego początku