[FreePascal]Błąd z plikami

0

Siemka mam taki kodzik

program grafika;
uses Crt,graph;
var
mapa: array[1..24,1..9] of char;
procedure start(ster, tryb: integer);
begin
InitGraph(ster, tryb, '');
end;

procedure wczytaj_mape();
var
Plik: File of Char;
Znak: char;
Nazwa: string;
I,j,ilosc: longint;
begin
ClrScr;
ReadLn(nazwa);
Assign(plik,nazwa);
FileMode:=0;
Reset(plik);
ilosc:=filesize(plik);
for i:=1 to 24 do begin
for j:=1 to 9 do begin
read(plik,znak);
mapa[i,j]:=znak;
end;
read(plik,znak); read(plik,znak);
end;
Close(plik);
end;
begin
//start(VGA,VGAHi);
//SetColor(4);
wczytaj_mape();
repeat until keypressed;
end.

I coś mi nie działa nie wiem dlaczego

jest takie coś
wpisałem : mapa.txt

pojawiło sie

mapa.txt
Runtime error 2 at 0x004010AA
   0x004010AA
   0x004011F8
   0x00402245

Chciałem tutaj w ogóle oczytac plik. A tan naprawde zrobic mape odczytując plik

00000000000000000000000
00000000011111111111100
00011111111111111111110
01111121111111111111100
01111131111111111111000
00001111111111111000000
00000011111111000000000
00000000111110000000000
00000000001100000000000

I wrzucac ją do tablicy mapa. Potem zmieniac 0,1,2 na obrazki (to wiem jak zrobic) ale jak w trybie graficznym VGAhi odczytac bmp ??

0

Runtime error 2 : file not found (przetłumaczysz sobie)

0

Ale plik na pewno istnieje :(

Mam w tym samym katalogu taki pliczek

program pliktekstowy;
Uses Crt;
var
Plik: File of Char;
Znak: char;
Nazwa: string;
I,ilosc: longint;
begin
ClrScr;
ReadLn(nazwa);
Assign(plik,nazwa);
FileMode:=0;
Reset(plik);
ilosc:=filesize(plik);
for i:=0 to ilosc-1 do
begin
read(plik,znak);
write(znak);
end;
Close(plik);
Writeln('Plik zawiera' ,ilosc, 'znak˘w');
repeat until keypressed;
end.

I on działa :( a jest tak samo !!

0

chyba to jest nie potrzebne (na czerwono):

for i:=1 to 24 do
begin
for j:=1 to 9 do
begin
read(plik,znak);
mapa[i,j]:=znak;
end;
read(plik,znak);
read(plik,znak);

end;

Tak ja uważam ale głowy nie dam :P

0

To działa ale nie p0rzy Ctrl+F9 trzeba uruchomic plik ręcznie a mam inne pytanie jak to zrobic

procedure rysuj;
var i,j : integer;
begin
for i:=1 to maxx do
  for j:=1 to maxy do begin
    case mapa[i,j] of
   '1' : SetColor(4) i narysuj prostokąt
   '2' : SetColor (10) i narysuj prostokąt
   '0' : SetColor(5) i narysuj prostokąt
   end
end;
end;
0

bar?
(setpattern sie moze przydac :))
jesli bedziesz chcial obrazek to przejrzyj getimage, putimage (wpierw rysujesz, potem pobierasz do pamieci a potem nakladasz :))

1 użytkowników online, w tym zalogowanych: 0, gości: 1