Baza danych-wyszukiwanie

0

Witam
Akurat tworzę bazę danych uczniów. "Zaciąłem się" na wyszukiwaniu uczniów po numerze legitymacji. Wszystko ładnie pozabezpieczałem, ale nie wypisuje szukanego ucznia. Oto kawałek kodu, z którym jest problem:

procedure szukajnr;
    var
      m:integer; s:string;
      begin
        clrscr;
        reset(p);
        writeln('Podaj numer legitymacji ucznia ktorego szukasz');
        repeat
        readln(s);
        val(s,t[i].nr_leg,m);
        if m>0 then
          write('Numer legitymacji musi skladac sie z samych cyfr!');
        if t[i].nr_leg<0 then
          write('Numer legitymacji nie moze byc liczba ujemna!');
        until (m=0) and (t[i].nr_leg>0);
        clrscr;
        for i:=1 to filesize(p) do
          begin
          read(p,t[i]);
          if t[i].nr_leg=m then
            writeln(t[i].im,' ',t[i].nazw,' ',t[i].nr_leg,' ',t[i].m_zam,' ',t[i].rok_ur,' ',t[i].im_mat,' ',t[i].im_oj);
          end;
      end;
0

Myślę, że błąd może być w tym miejscu:

kovalik17 napisał(a)
          if t[i].nr_leg=m then
            writeln(t[i].im,' ',t[i].nazw,' ',t[i].nr_leg,' ',t[i].m_zam,' ',t[i].rok_ur,' ',t[i].im_mat,' ',t[i].im_oj);

Co jest w zmiennej m? Po wykonaniu val(s,t[i].nr_leg,m); znajduje się w niej nr błędu, a nie nr legitymacji. Zapamiętana jest w t[i].nr_leg, ale przy odczytywaniu rekordów z pliku też ta wartość się zmieni... Przydałoby się gdzieś tą liczbę zapamiętać.

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