Problem ze ścieżką względną

Problem ze ścieżką względną
DK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

Witam.
Mam taki problem,
piszę aplikacje i używam ścieżek względnych do folderów znajdujących się w tym samym katalogu co aplikacja, np:

Kopiuj
'\biblioteka\maszyny.ini'

Wszystko jest świetne, jednak, postanowiłem, aby mój program był tworzony przy starcie systemu.
W dalszym ciągu wszystko działa ok, jednakże nie wczytuje mi żadnego pliku, ponadto wyrzuca mi błąd:

Kopiuj
"Nie znaleziono pliku w określonej ścieżce C:\Windows\system32\biblioteka\maszyny.ini"

I nie wiem jak sobie z tym poradzić, może macie jakiś pomysł ?

Da się może przy starcie programu sprawdzić ścieżkę do aplikacji ?
Bo pomyślałem, że wtedy mógł bym ją zapisać do stringa i wczytywać ścieżkę w ten sposób:

Kopiuj
string+ '\biblioteka\maszyny.ini'

A może jest jakieś inne rozwiązanie tego problemu ?
Proszę o pomoc i pozdrawiam.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

FilePath:=ExtractFilePath(ParamStr(0))+'\biblioteka\maszyny.ini';

DK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

Aha, dzięki o to mi chodziło, może zadam teraz dość banalne pytanie, ale nie programuje za długo w delphi :)
jak zdeklarować FilePath ? ( w sensie jako co )

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0

Path i patch to dwie różne rzeczy. Zobacz, jakiego typu zmienną zwraca ExtractFilePath i takąż zmienną zadeklaruj.

DK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

Ok, wielkie dzięki za pomoc :) działa, czasem w ogóle nie myślę, jeszcze raz dzięki

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
listbox1.Items.LoadFromFile(ExtractFilePath(ParamStr(0))+'\biblioteka\maszyny.ini');

Radzę zacząć od przynajmniej powierzchownego przeczytania byle jakiego kursu pascala/delphi bo inaczej nie jesteś w stanie nawet zrozumieć odpowiedzi na twoje pytania.

DK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

Dzięki :D
dzięki twoim wskazówkom w końcu włączyłem myślenie :)
wgapiałem się z 5 minut w ten kod aż go ogarnąłem, po czym zobaczyłem, że ty odpowiedziałeś mi to samo :)

w rezultacie końcowym użyłem:
ExtractFilePath(Application.ExeName)
Co daje identyczny efekt jak twój i tak samo dobrze działa

Teraz musze zmienić tylko około 100 ścieżek i gotowe.
Pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.