ďťż

Ładny brzuch

Oto kod procedury :
procedure TForm1.Wstaw_skrypt(skrypt : string); var i : integer; F : TextFile; linia : string; poz : integer; begin i := Textarea.CaretY; if FileExists(skrypt) then  begin AssignFile(F, skrypt);    for poz := 0 to 39 do    begin    Readln(F, linia);    Textarea.Lines.Insert(i, linia);    i := i + 1;    end;    Reset(F);    CloseFile(F);  end  else    ShowMessage('Błąd! Brak pliku ze skryptem !'); end;

Procedura ta ma odczytywać 39 lini z pliku tekstowego i dodawac je do memo [texarea]. Po wywołaniu procedury z odpowiednim parametrem [nie pokazuje sie bład] debugger zaznacza mi linike :
Readln(F, linia);
I nic więcej nie pisze :( [na dole w oknie błędów]..Co tu jest źle ???




(...) AssignFile(F, skrypt);    for poz := 0 to 39 do    begin    Readln(F, linia);    (...)    end;    Reset(F);    CloseFile(F);  end

Błąd jest dlatego, że odczytujesz z pliku gdzie on nie jest jeszcze otwarty! Otwierasz go po zakończeniu pętli i od razu zamykasz. Daj tak:

(...) AssignFile(F, skrypt); Reset(F); try   for poz := 0 to 39 do   begin   Readln(F, linia);   Textarea.Lines.Insert(i, linia);   i := i + 1;   end; finally   CloseFile(F); end; (...)
Użytkownik p1101 edytował ten post 02 sierpień 2005, 13:12
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •