Witam,
otoz w programie ktory pisze operuje na punktach majacych wspolrzedne. Czesc programu odpowiada za ich zapis do pliku i odczycie, ale w takim formacie, zeby recznie rowniez mozna bylo pzrygotowac plik, dajacy sie wczytac. Przyjalem taki sposob, ze kazda linia pliku textowego zawiera pare licz: wspolrzedne x i y.
punkty sa przechowywane w tabeli boolean.
Plik wyglada np tak:
12 3
2 45
2 34
12 11
napisalem taki kod:
Zapis:
begin
memo1.lines.Clear;
for i:=1 to wymiar do
for j:=1 to wymiar do
if tab[i,j]=true then
begin
d:=(inttostr(i))+' '+(inttostr(j));
memo1.lines.add(d);
end;
if savedialog1.execute then
begin
assignfile(outfile, Savedialog1.FileName);
rewrite(outfile);
writeln(outfile, memo1.text);
closefile(outfile);
end;
end;
i wczytywanie:
begin
assignfile(infile,opendialog1.filename);
reset(infile);
while not EOF(infile) do
begin
readln(infile,data);
i:=0;
ipos:=i;
repeat
inc(ipos);
until data[ipos+1]=' ';
a:=copy(data,i,ipos);
i:=ipos+2;
ipos:=ipos+1;
repeat
inc(ipos);
until data[ipos+1]='';
b:=copy(data,i,ipos);
y:=strtoint(a)-1;
x:=strtoint(b)-1;
tab[x,y]:=true;
end;
Osobne procedury wydaja sie dzialac poprawnie, zapisany plik wyglada jak ma wygladac, a plik przygotowany recznie jest poprawnie wczytywany.
Problem pojawia sie, gdy wczytuje plik, ktory wczesniej stworzylem zapisujac ta procedura.
Problem moze lezec w nepoprawnym rozpoznawaniu konca linii..
P.S. Sorry za rozlegly i nieczytelny kod...
Jesli łatwiej komus napisac wlasny kod, bylbym wdzieczny...