[Pascal] Wczytywanie pliku od końca

arek18
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 20 lut 2012, o 16:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 1 raz

[Pascal] Wczytywanie pliku od końca

Post autor: arek18 »

posiadam plik tekstowy z liczbami od 1 do 10
umie go wczytać ale nie udaje mi się go odwrócić żeby czytał od końca liczby czyli od 10 do 1

Kod: Zaznacz cały

Program zadanie;
uses crt;
var
plik:text;
linia,d:string;
tab:array[1..10] of char;
i:integer;

begin
clrscr;
assign(plik,'plik.txt');
reset(plik);
readln(plik,linia);
writeln(linia);
close(plik);
readln;
end.
proszę o pomoc
Ostatnio zmieniony 10 mar 2012, o 14:34 przez Afish, łącznie zmieniany 1 raz.
Powód: Stosuj tagi code.
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Pascal] Wczytywanie pliku od końca

Post autor: adambak »

nie ma możliwości czytania od końca.. zrób tak, że przeczytasz cały plik zapisując kolejne wiersze w tablicy a potem odczytaj ją od końca..
arek18
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 20 lut 2012, o 16:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 1 raz

[Pascal] Wczytywanie pliku od końca

Post autor: arek18 »

mógłbyś mi napisać ten kod ??
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Pascal] Wczytywanie pliku od końca

Post autor: adambak »

Kod: Zaznacz cały

program test;

var plik:text;
    linie:array[0..20]of string;
    i:integer; 
  
begin
  i:=1;
  assign(plik,'plik.txt');
  reset(plik);
  while not eof(plik) do begin
    i:=i+1;
    readln(plik,linie[i]);
  end;

  while i>=0 do begin
    writeln(linie[i]);
    i:=i-1;
  end;
  
  close(plik);
end.
może być?
arek18
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 20 lut 2012, o 16:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 1 raz

[Pascal] Wczytywanie pliku od końca

Post autor: arek18 »

czemu to nie działa jak powinno tylko wyświetla cyfry z pliku od 1 do 10 i tyle
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Pascal] Wczytywanie pliku od końca

Post autor: adambak »

a o co Ci w takim razie chodziło? skoro chciałeś wczytywać od końca pliku to zrozumiałem, że interesują Cię informacje w nim od końca dlatego wypisałem plik od końca.. możesz doprecyzować jaki jest cel?
arek18
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 20 lut 2012, o 16:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 1 raz

[Pascal] Wczytywanie pliku od końca

Post autor: arek18 »

wczytanie pliku do tablicy pliku z 10 liczbami i wyświetlenie ich w odrodnej kolejności
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Pascal] Wczytywanie pliku od końca

Post autor: adambak »

no to przecież to mój program robi...
arek18
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 20 lut 2012, o 16:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 1 raz

[Pascal] Wczytywanie pliku od końca

Post autor: arek18 »

jak odpalam mam to ... uumzu.jpg/
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Pascal] Wczytywanie pliku od końca

Post autor: adambak »

no niech Ci będzie, myślałem że każda w osobnej linii..

Kod: Zaznacz cały

program test;

var plik:text;
    liczby:array[0..20]of integer;
    tmp,i:integer; 
    c:char;
  
begin
  i:=-1;
  assign(plik,'plik.txt');
  reset(plik);
  while not eof(plik) do begin 
    if eoln(plik) then readln(plik)
    else begin
      read(plik,c);
      if c<>' ' then begin
        if eoln(plik) then tmp:=ord(c)-ord('0')
        else begin 
          tmp:=0;
          while (not eoln(plik)) and (c<>' ') do begin
            tmp:=10*tmp+ord(c)-ord('0');
            read(plik,c);
          end;
          if eoln(plik) then tmp:=10*tmp+ord(c)-ord('0');
        end;
        i:=i+1; liczby[i]:=tmp;
      end;
    end;
  end;

  while i>=0 do begin
    writeln(liczby[i]);
    i:=i-1;
  end;
  
  close(plik);
end.
teraz już chyba niczego nie można zarzucić temu programowi.. w pliku może być mnóstwo spacji i enterów pomiędzy liczbami ale i tak wypisze wszystkie poprawnie od końca..
arek18
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 20 lut 2012, o 16:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 1 raz

[Pascal] Wczytywanie pliku od końca

Post autor: arek18 »

teraz to nie szacunek dla ciebie
ODPOWIEDZ