Avatar billede bumle90 Nybegynder
20. januar 2004 - 16:44 Der er 6 kommentarer og
1 løsning

At lave en relativ sti i C/C++

Hej. Jeg har en exe fil jeg har udviklet i cpp.
Denne exe fil gør brug af en txt fil som ligger i samme dir som exe filen. Mit problem er dog at hvis jeg kører exe filen fra en hvilken som helst anden mappe end der hvor den fysisk ligger kan den ikke finde txt filen, og programmet går ned.
Jeg skal altså have en måde hvorpå jeg kan finde exe filens directory, så jeg kan få en relativ sti til txt filen.
Og det nytter ikke noget at skrive
fopen("c:\\mappe\\mappe1\\fil.txt","r");
da dette vil være en absolut sti, og ikke vil kunne virke hvis man starter exe filen fra en anden computer.
Hvis nogen har en ide vil jeg blive glad :)
Tak på forhånd.
Avatar billede bearhugx Nybegynder
20. januar 2004 - 16:46 #1
kan du ikke bare skrive
  fopen("./fil.txt", "r");
?
Avatar billede bearhugx Nybegynder
20. januar 2004 - 16:47 #2
eller fopen(".\\fil.txt", "r");

kom lige i tanke om at windows arbjeder med back-slash
Avatar billede arne_v Ekspert
20. januar 2004 - 16:52 #3
fil.txt eller .\fil.txt er i samme dir som man kører programmet fra

hvis du skal have fat i den i samme dir som exec ligge ri, så skal du:
  tage argv[0] fra main's argumenter som indeholder sti til exe
  skrælle selve exe filen navn af og appende din fils navn
Avatar billede jpk Nybegynder
20. januar 2004 - 16:56 #4
TCHAR szEXEPathname[_MAX_PATH];
GetModuleFileName(NULL, szEXEPathname, _MAX_PATH);
Avatar billede arne_v Ekspert
20. januar 2004 - 16:56 #5
Hm. Måske er det ikke en god løsning. Der ser ud som om at argv[0] ikke
indeholder dir men kun navn.
Avatar billede jpk Nybegynder
20. januar 2004 - 16:58 #6
Vil give fx:
c:\MyDir1\MyDir2\ExeName.exe
Hvis du kører den lokal, og
\\MyComputername\MyDir1\MyDir2\ExeName.exe
hvis du kører programmet fra en anden maskine på netværket
Avatar billede bumle90 Nybegynder
20. januar 2004 - 17:26 #7
jpk jeg fandt et tidligere indlæg du har lavet med samme svar som jeg gjorde brug af :)
Så du fortjener egentlig pointene hehe...Tak for det....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester