Ĺ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
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