[Pascal] Kompilacja - TP, a FP

0

Mam tutaj przy sobie kod pewnego programiku...:

program zliczanie;
uses crt;
var nazwa: string;
    a : integer;
    znak:char;
    liczenie:array['A'.. 'z'] of word;
    plik:text;
      begin
           clrscr;
           writeln('Podaj nazwe pliku z danymi: ');
           readln(nazwa);
           assign(plik,nazwa);
           reset(plik);
                  repeat read(plik,znak);
                       liczenie[znak]:=liczenie[znak]+1;
                  until eof(plik);
           a:=1;
           for Znak := 'A' to 'z' do
               begin;
                    if liczenie[znak]>0 then
                    writeln(znak,' ',liczenie[Znak]);
               end;
      readln;
end.

Mianowicie, problem polega na tym, iż w czasie kompilacji tego kodu we Free Pascalu, mimo, że FP mówi, że wszystko dobrze się zrobiło, to programik działa aż do wciśnięcia entera... Później sam się wyłącza. Wszystko było dobrze, kiedy kompilowałem to w Turbo Pascalu. Czytałem "Porting Turbo Pascal to Free Pascal" (http://www.freepascal.org/port.var), ale mimo to nie wiem, gdzie leży problem. Może ktoś wie? :-)

0

Moze dlatego, ze z pliku program moze odczytac znaki ktorych tablica nie zawiera w indeksowaniu. Np znak nowej linii #13#10. Kwestia taka, ze jeden kompilator moze jakos to puszcza a drugi nie. IMHO program ma blad mowiac w skrocie :)

0

Jeśli błąd jest w tym miejscu o którym mastered mówi to możesz zamiast

liczenie: array['A'..'z'] of word;

dać coś takiego:

liczenie: array[Byte] of word;

i tak samo w ostatniej pętli jechać od 0 do 255 ;)

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