Графическое представление данных файла

pokosmosu21

Друзья, распишу кратко задачу:Считать текстовый файл 90x90, который содержит разные числа от 0 до 3 каждое число у нас будет означать какой то цвет допустим 0 это синий, 1 это черный и т.д. затем нужно построить это в визуальном виде (то есть 90x90 квадратиков которые состоят из этих 4 цветов, взависимости от цифры)Подскажите пожалуйста как это реализовать, раньше никогда с графикой не работал.
6 ответов

pokosmosu21

uses
  graphabc;
const
 colors:array [0..3] of integer=(clBlack,clGreen,ClBlue,clRed);
var
 w,h,x,y,i,j:integer;
 f:text;
begin
 w:=10;
 h:=7;
 assign(f,'colors.txt');
 rewrite(f);
 for i:=1 to 90 do
  begin
   for j:=1 to 90 do
    begin
     x:=random(4);
     write(f,x:3);
    end;
  end;
 close(f);
 
  reset(f);
  for i:=1 to 90 do
   begin
   for j:=1 to 90 do
    begin
     read(f,x);
     setbrushcolor(colors[x]);
     Fillrect(w*i,h*j,w*i+w,h*j+h)
    end;
  end;
 readln;
 close(f);
end.


pokosmosu21

ZX Spectrum-128, ОГО! Спасибо большое!))) Но тут как я понял у вас сама программа рандомно заполняет значения от 1 до 90 ?) мне нужно чтобы считало из файла) или я что то не понял в вашей программе...


pokosmosu21

Создаем файл
for i:=1 to 90 do
  begin
   for j:=1 to 90 do
    begin
     x:=random(4);//пишем в него случайные числа от 0 до 3
     write(f,x:3);
    end;
  end;
 close(f);
Читаем из файла числа
reset(f);
  for i:=1 to 90 do
   begin
   for j:=1 to 90 do
    begin
     read(f,x);
     setbrushcolor(colors[x]);//и устанавливаем цвет квадрата  (clBlack,clGreen,ClBlue,clRed)
     Fillrect(w*i,h*j,w*i+w,h*j+h)
    end;
  end;


pokosmosu21

Товарищи, а как переписать код, чтобы происходило чтение из текстового файла, который создан отдельно, а не генерируется внутри самой же программы?


pokosmosu21

Ну если делать нефиг, создай текстовый файл с 8100 числами от 0 до 3, записанными через пробел. Создание файла выкинь из программы, а чтение оставь.


pokosmosu21

Puporev, такой уже имеется Puporev, спасибо большое! Получилось! Отличный форум!) Буду дальше продвигаться по диплому)))