Pascal enter jak brak pliku


(Drobok) #1
assign(baza,nazwa);

reset(baza);

{$I-}

seek(baza,0);

read(baza,t[0]);

{$I+}

if ioresult=0 then

begin(...)

end

else begin (...)

end;

Jak w temacie program działa mi normalnie tylko jeśli nie ma pliku do którego ma dodać muszę nacisnąć enter by "szło" dalej

gdy wywaliłem linijkę z read to działało bez entera ale niestety nie wykrywa mi wtedy braku pliku.

Ma ktoś pomysł na coś podobnego bez korzystania z modułu dosa ?


(Gina Gina) #2
assign(baza,nazwa);

{$I-}

   reset(baza);

{$I+}

if ioresult=0 then

  begin

     {...}

  end

else

  begin

     rewrite(baza);

    {...}

  end;

(Drobok) #3

Nie oto mi chodzi. W moim programie gry nie ma bazy wyświetla mi napis że bazy nie ma. Niestety dzieje się to po enterze ;/

I tu pojawia się moje pytanie jak by to zrobić aby nie trzeba było nacisnąć enter


(Gina Gina) #4

Wykonaj badanie istnienia pliku poprzez:

{$I-}

    reset(baza);

  {$I+}

Pozostalą część umieść po zbadaniu ioresult=0

if ioresult=0 then

    begin

      {$I-} { $I-/+ tylko jeśli nie kontrolujesz zakresu używanych zmiennych ;/ }

      seek(baza,0); { co powinieneś robić w programie, inaczej będą błędy ;/ }

      read(baza,t[0]);

     {$I+} 

     {...}

    end

  else

    begin

      rewrite(baza);

      {...}

    end;

Sposób w jaki używasz {$I-} ... {$I+} jest niepoprawny (kompromitujący)

i daje w związku z tym niedookreślone rezulaty - błędy ;/


([alex]) #5

drobok , może poszukaj w kodzie zbędnego readln;


(Drobok) #6

readln nawet jednego w tej procedurze nie ma

Co do sposobu gina najpierw trzeba nacisnąć enter a potem wywala mi disk read eror, natomiast moim kompromitującym sposobem program idzie dalej i wyświetla mi że bazy nie znaleziono.

Ja dopiero się uczę i jak mi nie wychodzi to próbuje inaczej dla mnie nie ważne czy mój sposób jest kompromitujący ważne by działało. Jak będzie działać perfect to się zajmę optymalizacją kodu xD


(Gina Gina) #7

Sposobem błędów nie ominiesz :stuck_out_tongue_winking_eye: - choć nie wszystkie Ci wyświetli w postaci jawnej :o

Błędny kod nie będzie działał perfect :frowning: Optymalizacja błędnego kodu to już :shock:

PS Jeżeli to nie jest tajny projekt :smiley: to wyślij mi na PW - podaj kompilator jakiego używasz

Sprawdzę w wolnej chwili :expressionless:


(Drobok) #8

:expressionless: Znalazłem mój błąd otóż nie miałem linijki z sprawdzeniem czy w ogóle była wpisana ścieżka do bazy a że sprawdzałem czy wyskakuje błąd nie podając ścieżki wywalał mi błąd. Taki banalny błąd a tyle czasu go szukałem. Sry dla was. Ostatnio mi prąd wyłączyli nie zapisałem i być może przez to nie pomyślałem o tym. W każdym razie moja wina jeszcze raz sry.