[Back to TEXTFILE SWAG index]  [Back to Main SWAG index]  [Original]

program Pokaz;
uses Crt;

const
  Max_line=80;
  max_row=700;

var
  plik : text;
  nazwa : string[12];
  tablica : array[1..max_row] of string[max_line];
  max : integer;
  linia : integer;
  koniec : boolean;

procedure Wyswietl(a : integer);
var j : integer;
begin
  ClrScr;
  j:=a;
  while (j<a+23) and (j<max) do
    begin
      writeln;
      write(tablica[j]);
      j:=j+1;
    end
end;

procedure Nastepny;
begin
  if linia+25<max then
    begin
      gotoXY(80,23);
      linia:=linia+1;
      writeln;
      write(tablica[linia+24]);
    end
end;

procedure Poprzedni;
begin
  if linia>1 then
    begin
      linia:=linia-1;
      gotoXY(1,1);
      InsLine;
      write(tablica[linia]);
    end
end;

procedure Strona_gora;
begin
  if linia>1 then
    begin
      linia:=linia-23;
      if linia<1 then linia:=1;
      Wyswietl(linia)
    end
end;

procedure Strona_dol;
begin
  if linia<max-23 then
    begin
      linia:=linia+23;
      if linia>max-23 then linia:=max-23;
      Wyswietl(linia)
    end
end;

function Menu : integer;
var znak : char;
begin
  repeat znak:=Readkey;
  until  znak in
  [chr(80),chr(72),chr(73),chr(81),chr(27)];

  if ord(znak)=27 then menu:=0
  else if ord(znak)=80 then menu:=1
  else if ord(znak)=72 then menu:=2
  else if ord(znak)=81 then menu:=3
  else if ord(znak)=73 then menu:=4
end;

begin
  ClrScr;
  GotoXY(1,24);
  TextColor(LightBlue);

writeln('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
TextColor(LightGray);
if ParamStr(1)='' then
    begin
      write('Podaj nazwe pliku: ');
      readln(nazwa);
    end
  else
    nazwa:=ParamStr(1);
  Assign(plik,nazwa);
  reset(plik);

  max:=1;
  while not eof(plik) do
    begin
      readln(plik,tablica[max]);
      max:=max+1
    end;
  TextBackground(White);
  TextColor(Black);

  GotoXY(1,1);
  ClrEol;
  write('W & W Obejrzyj','Liczba linii: ':60,max-1);
  GotoXY(1,25);
  ClrEol;
  write('Plik: ',nazwa,'@K. Walczak':65);
  TextBackground(Blue);
  TextColor(LightGray);

  window(1,2,80,24);
  linia:=1;
  wyswietl(linia);
  koniec:=false;
  repeat
    case menu of
      1 : Nastepny;
      2 : Poprzedni;
      3 : strona_dol;
      4 : strona_gora;
      0 : begin
            TextBackground(black);
            TextColor(lightgray);
            window(1,1,80,25);
            ClrScr;
            koniec:=true
          end
    end
  until koniec
end.

[Back to TEXTFILE SWAG index]  [Back to Main SWAG index]  [Original]