[pascal] odczyt z pliku

dr_giggly^^
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 19 lut 2008, o 13:37
Płeć: Mężczyzna
Lokalizacja: Biała Podlaska
Podziękował: 7 razy

[pascal] odczyt z pliku

Post autor: dr_giggly^^ »

Jak mam zmienić kod aby mógł przewijać strzałką do dołu zamiast Enterem tekst i żebym mógł również przewijać tekst do góry.

Oto kod:

Kod: Zaznacz cały

program pliki_tekstowe;

uses crt;

var nazwa: string;
    i: byte;

procedure pisz(nazwa: string);
var plik: text;
    linia: string[77]; 
    i: byte;
begin
   assign(plik,nazwa);
   reset(plik); 
   while not eof(plik) do
   begin
   for i:=0 to 21 do
      begin
      readln(plik,linia);

      { rysuje zawartosc w ramce }
      writeln(chr(186):1, linia:-1, chr(186):78-length(linia)); 

      
      if eof(plik) then exit; 
      end;
   if not eof(plik) then
      begin
      textcolor(lightred);
      write(chr(186),'                      >> ');
      write('Nacisnij enter aby przewinac');
      write(' <<                      ',chr(186));
      readln;
      textcolor(7);
      end;
   end;
   close(plik);
end;

begin
   write('Podaj nazwe pliku, ktorego zawartosc mam wczytac: ');
   readln(nazwa);
   writeln('Zawartosc pliku ',nazwa,':');
   write(chr(201)); for i:=0 to 76 do write(chr(205)); writeln(chr(187));
   pisz(nazwa);
   write(chr(200)); for i:=0 to 76 do write(chr(205)); writeln(chr(188));
   writeln('Koniec pliku.');
   readln;
end.
sin
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 28 cze 2008, o 09:11
Płeć: Mężczyzna
Lokalizacja: kraków

[pascal] odczyt z pliku

Post autor: sin »

dr_giggly^^ pisze: writeln(chr(186):1, linia:-1, chr(186):78-length(linia));
to reguła przewijania w dół.

chr(186) oznacza enter, co widać np. tutaj:
dr_giggly^^ pisze: write(chr(186),' >> ');
write('Nacisnij enter aby przewinac');
write(' chr(186));
Jest to reguła przewijania w dół, musisz więc zamienić w niej 186 na kod odpowiadający strzałce w dół (przeszukaj google, powinny być jakieś sposoby na odczyt znaków symbolicznych dla klawiszy spoza układu ascii extended, które będą odpowiednie dla twojego kompilatora)

dla przewijania w górę musisz utworzyć nową (prawie taką samą) regułę, w której zamienisz 186 na kod strzałki w górę, a parametr linia zmienisz o +1, zamiast -1.
ODPOWIEDZ