uses wincrt,graph;
var
gd,gm,j,i:integer;
x,x1,y1,y:integer;
col:word;
c:char;
s:byte;
t:text;
procedure ex;
begin
assign(t,'log.txt');
append(t);
for x:=1 to getmaxx do
for y:=1 to getmaxy do
begin
col:=getpixel(x,y);
if col=0 then continue;
writeln(t,x,' ',y,' ',col);
flush(t);
end;
end;
begin
gd:=detect;
initgraph(gd,gm,'');
moveto(getmaxx div 2,getmaxy div 2);
s:=9;
repeat
x:=getx;
y:=gety;
c:=readkey;
case c of
'+':begin
inc(s);
circle(x,y,s);
end;
'-':begin
dec(s);
circle(x,y,s);
end;
'w':begin
moveto(x,y-1);
circle(x,y,s);
end;
's':begin
moveto(x,y+1);
circle(x,y,s);
end;
'a':begin
moveto(x-1,y);
circle(x,y,s);
end;
'd':begin
moveto(x+1,y);
circle(x,y,s);
end;
'r':setcolor(red);
'g':setcolor(green);
'b':setcolor(blue);
'h':setcolor(black);
'n':setcolor(white);
#27:ex;
'c':begin
cleardevice;
moveto(x,y);
end;
end;
until false;
readln;
end.
теперь другая прога которая "загружает" то что было сохранено:
uses crt,graph;
var
gd,gm:integer;
t:text;
s,x,y,col:string;
x1,y1:integer;
col1:word;
begin
clrscr;
gd:=detect;
initgraph(gd,gm,'');
assign(t,'log.txt');
reset(t);
while not eof(t) do
begin
readln(t,s);
x:=s[1]+s[2]+s[3];
val(x,x1);
y:=s[7]+s[8]+s[9];
val(y,y1);
col:=s[13]+s[14];
val(col,col1);
putpixel(x1,y1,col1);
end;
readln;
end.
когда "загружает" рисунок то нарушен цвет +иногда когда "рисунок" большой то ошибочно изображает его.
как сделать чтоб этого небыло ?
в чём моя ошибка ?