OpenDialog a katalog wywołujący

dział ogólny

OpenDialog a katalog wywołujący

Nowy postprzez Gazunio » Å›roda, 5 maja 2010, 09:09

Witam.
Wyjaśnię najpierw całą sytuację.
Mam OpenDialog, którym wybiera się plik graficzny.
Kod: Zaznacz cały
       if(OpenDialog1->Execute())
{
     String plik = OpenDialog1->FileName;
}

Wykonywane są też inne operacje, ale to w tym momencie nie jest ważne.

Jest też inny Button, przeprowadza operacje na pliku. Wszystko jest dobrze, pod warunkiem gdy nie wybierze się pliku w OpenDialogu. Bo gdy skorzysta się z OpenDialogu, to wszystkie operacje są wykonywane w takim katalogu, w którym jest wskazany plik. Lokalizacje bezwzględne pomagają niestety tylko w części, gdyż korzystam z dodatkowych aplikacji dosowych.

Kod: Zaznacz cały
String fifafs = ExtractFilePath(ParamStr(0))+"fifafs.exe";
String katalog = dir->Text;
String create = " -createbig \""+katalog+"\\data\\zdata_98.big ""\" \"";
Execute(fifafs, create.c_str(), NULL);

Ten powyższy kod zadziała też po wybraniu pliku, bo można spokojnie podać lokalizację pliku na którym się operuje czyli w tym wypadku :
Kod: Zaznacz cały
\""+katalog+"\\data\\zdata_98.big ""\"


Problem pojawia się gdy program dosowy wymaga wczytania pliku tekstowego z listą plików do importu, gdyż wtedy wyszukuje tych plików tam, gdy został wskazany plik w OpenDialogu.

Tak więc moje pytanie: Czy można zmienić z powrotem katalog z którego są wszystkie operacje wywoływane?
Avatar użytkownika
Gazunio
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): środa, 13 maja 2009, 18:40
PodziÄ™kowaÅ‚ : 3
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder 2009
Gadu Gadu: 5147883
    Windows XPFirefox

Re: OpenDialog a katalog wywołujący

Nowy postprzez Cyfrowy Baron » Å›roda, 5 maja 2010, 12:23

Szukałem w plikach pomocy, w sieci i niczego nie znalazłem, więc musisz chyba przemyśleć koncepcję programu i jakoś przekazywać do programu ścieżkę dostępu do tych plików, które mają być wyszukiwane.

Nie wiem co właściwie zmienia wywołanie OpenDialog, gdyż ani ParamStr(0) a nie Application->ExeName nie ulegają zmianie, więc gdzie jest ta ścieżka dostępu z której program korzysta?!

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Gazunio
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: OpenDialog a katalog wywołujący

Nowy postprzez Gazunio » Å›roda, 5 maja 2010, 12:59

No właśnie sprawdzałem czy ParamStr(0) i Application->ExeName ulegają zmianie, i cały czas są niezmienne. Mimo wszystko katalog z którego jest wywołanie się zmienia. Przykładowo wybieram plik obraz.png na dysku C:\\, to potem wszystko jest wywoływane z głównego katalogu dysku C. Tam też wszystkie programy dosowe szukają plików. A nie tak jak powinny - w katalogu ParamStr(0).

Co do tego mojego problemu to zastosuję inne rozwiązanie, nie skorzystam z listy plików, tylko z importu pojedynczych plików, gdyż wtedy można podawać bezwzględną ścieżkę do pliku.
Avatar użytkownika
Gazunio
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): środa, 13 maja 2009, 18:40
PodziÄ™kowaÅ‚ : 3
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder 2009
Gadu Gadu: 5147883
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 29 gości