[Delphi] Odczyt danych z pliku txt.

0

Mam pytanie odnośnie Delphi , zrobiłem już program tylko mam jeden problem bo program odczytuje dane z pliku txt i jak mam podac ścieżkę do niego żeby na innym kompie tez działało?
bo jak przeniosę na innego kompa to błąd wywala.

część programu:

procedure TForm1.Button6Click(Sender: TObject);
var s:string;
t:string;
w:integer;
zmpl:textfile;
begin
AssignFile(zmpl,'\angielski\pies.txt');
reset(zmpl);

 repeat
    readln(zmpl,t);
    Edit1.Text:=t;
 until eof(zmpl);

CloseFile(zmpl);

end;

0

Najprościej to dajesz okienko typu Edit i do niego wklepujesz ścieżkę. I w kodzie masz:

AssignFile(zmpl, Edit1.Text);
0

Upewnij się że do sekcji uses masz dodany moduł SysUtils. ParamStr(0) to ścieżka i nazwa do pliku exe od
Twojej aplikacji. Można też użyć Application.ExeName. Funkcja ExtractFilePath robi to co jej nazwa, czyli
pobiera całą ścieżkę (czyli ze slashem na końcu). Oczywiście podkatalog angielski i sam plik txt muszą być
w tej lokalizacji. Możesz też sprawdzać czy plik istnieje przy użyciu funkcji FileExists. A oto fragment kodu

var
  Sciezka : string;
  // ...
begin
  Sciezka := ExtractFilePath(ParamStr(0));
  AssignFile(zmpl, Sciezka + 'angielski\pies.txt');
  //...
end;

EDIT: a teraz mnie dkacperczyk ubiegł. Jeżeli ścieżka ma być poza katalogiem programu to faktycznie by ją
trzeba było podawać w jakimś polu edycyjnym, a poźniej ewentualnie zapisac i odczytywać może z pliku ini.

0

A jeszcze mi napisz bo nie znam tej funkcji

Sciezka := ExtractFilePath(ParamStr(0));

za paramStr(0) mam wpisać scieżke do pliku exe?;/ bo nie kapuje troche

0

Aha dobra już wiem czyli ExtractFile(0) pobiera ścieżkę do pliku bez jego nazwy i póżniej dodaje do tego angielski/pies.txt.

0

Udało sie , dzięki wszytskim za pomoc

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