[PASCAL] Wczytanie cyfr do tablicy NxN z pliku

Witam!

Mam problem z napisaniem programu, za pomocą, którego wczytam cyfry (0 lub 1 - najlepiej jeśli byłby to typ logiczny) z pliku tekstowego.

Plik wejściowy wyglądać ma mniej więcej tak:

4

1 1 0 1

0 0 1 1

0 1 1 1

0 0 0 1

W pierwszym wierszu znajduje się rozmiar (NxN) tablicy, zaś w kolejnych owa tablica. Nie ma znaczenia jaki będzie seperarator pomiędzy liczbami (może być spacja, przecinek, ewentualnie bez). Całą resztę programu mam już napisaną - program ma sprawdzać własności relacji (zwrotna, symetryczna, słabo antysymetryczna itd.). Problem jest z wczytaniem tych liczb do tablicy. Oto fragment kodu

uses crt;


const 

prel = 'D:\rel.txt';


var

F : Text; //plik tekstowy

N : Integer; // wielkosc tablicy z pliku

T : array of array of char; //tablica dwuwymiatowa n x n


i,j : Integer;

c : char;


begin

assign (F,prel);

reset (F);


readln(F,N);

N:=N-1;

SetLength(T, N, N); //ustawia wielkosc tablicy N-1 x N-1, indeksowanie od 0 :(


while not EOF(F) do

	begin

	for j:=0 to N do 

		begin

		for i:=0 to N do

			begin

			readln(F,c);

			T[i,j]:=c;

			end;

		end;

	end;

read();

end.

Zwraca błąd 216.

Proszę o nie wyśmiewanie mnie, że muszę korzystać z Pascala, wystarczy że sam siebie wyśmiewam. :smiley:

Nie, no wiesz śmiać to raczej nikt się nie będzie. Utworzyłem plik na dysku :

1 1 0 1

0 0 1 1

0 1 1 1

0 0 0 1

Oraz napisałem program w Pascalu, u mnie to wygląda, tak :

Program p1;

Uses crt;

const n = 4;

Type TTablica = array[1..n,1..n] of char;

Var

plik : text;

tab : TTablica;

i,r,k,ile_r : integer;

element_docelowy, tmp : string;

Begin

clrscr;

 element_docelowy:='liczby.txt';

 assign(plik,element_docelowy);

 reset(plik);

 ile_r:=1;

 r:=1;

 k:=1;

 while not eof(plik) do

  begin

   readln(plik,tmp);

   for i:=1 to length(tmp) do

    begin

     if tmp[i]<>' ' then

      begin

       r:=ile_r;

       tab[r,k]:= tmp[i];

       inc(k);

      end;

    end;

  end;

 writeln('Tablica : ');

 for i:=1 to n do 

  for r:=1 to n do 

   begin

    write(tab[i,r]);

    if r = n then 

     writeln;

   end;

 writeln('Nacisnij Enter, aby zakonczyc');

readln;

ENd.

Tablica, wczytuje liczby u mnie poprawnie i wszystko działa chyba, tak jak należy. Jeżeli chodzi o błędy to można zobaczyć w internecie, ale to już prawdopodobnie ze względu na IDE przez Ciebie wykorzystywane.