Newsgroup: it.comp.lang.c++
Titolo: path dell'exe

come ricavare in un char * il path dell'exe???? solo il path tipo 
C:\Programma\


Effettua un ciclo for da sinistra a destra e fermati quando trovi lo slash
'\' e inserisci un carattere nullo '\0'.
Fine
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


forse da destra a sinistra... o ciìomunque per capirci dalla fine
della stringa a ritroso verso l'inizio
Andrea
----
http://space.tin.it/io/andrea.fa


si ok. però il path????

Andrew wrote:

si ok. però il path? c'è una funzione getExePath? GetProcessPath??
L'ho cercata ma non la trovo

 si ok. però il path? c'è una funzione getExePath? GetProcessPath??
Non so se sono M$ specific ma io uso:
_splitpath() : Break a path name into components
-- 
Luc

 L'ho cercata ma non la trovo
Ti consiglio di postare su it.comp.programmare.win32, dove
probabilmente ti sapranno rispondere correttamente. Questo è un ng di
C++ Standard, che non contempla funzioni specifiche per un OS (come nel
tuo caso un'API per ricavare la path dell'exe).
Ciao,
-- 
+--------+ ASCII ribbon campaign ( )
|  kral  |  - against HTML email  X 
+--------+              & vCards / \


Opps chiedo scusa...la droga a volte!!! ;-)
Per il path, una volta impostato il carattere di fine riga (\0),
basta leggerla come una normale variabile:
se pippo = "ciao a tutti\0";
e poi con il cilco che ti ho detto:
pippo = "ciao a t\0utti";
fine, se stampi pippo avrai a video: "ciao a t"
Ciaooo


 L'ho cercata ma non la trovo
prova a cercarlo in argv[0]... io normalmente lo trovo li (in C++ standard
altrimenti sei OT).
ciao,
Nids

 altrimenti sei OT).
non và bene "normalmente"..."DEVE" trovarsi lì!!
E non solo in C++ standard, ma anche in C99 e in tutte le implementazioni
proprietarie (VC++, CBuilder, Kylix, gcc etc...).
Ciao


>>> si ok. però il path? c'è una funzione getExePath? GetProcessPath??
Beh, penso che per la domanda originale si debba ricorre a soluzioni offerte
dal sistema... non standard e quindi OT.
Tommy

 solo "tommy".
Beh francamente il valore che mi ritornava argv[0] era sempre con il path,
anche quando richiamavo solo l'eseguibile!
Cmq...
Sorry


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
AlterX wrote:
|>Ti sbagli, lo standard dice:
|>
|>"....argv[0] shall be the pointer to the initial character of a NTMBS that
|>represents the name used to invoke the program or "". "
|>
|>Ovvero, in parole molto piu' povere, se io ho un programma :
|>"c:\my_programs\tommy.exe" e digito:
|>"c:\my_programs\tommy.exe" allora argv[0] sara' "c:\my_programs\tommy.exe"
|>ma se io mi sposto in c:\my_programs\ e digito solo:
|>"tommy.exe" allora argv[0] sara' "tommy.exe"
|>e se io dovessi digitare solo "tommy" in teoria argv[0] dovrebbe contenere
|>solo "tommy".
|
|
| Beh francamente il valore che mi ritornava argv[0] era sempre con il path,
| anche quando richiamavo solo l'eseguibile!
Non posso verificare, comunque se e' vero quello che dici vuol dire che
il compilatore che usavi non seguiva lo standard.
G.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (MingW32)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iD8DBQE/0flg7UpzwH2SGd4RAhKtAKCU2uyCfp8sW/eFgsGHZcd4wo0sHwCfctQS
Zg3rYRrnMEEe/TXzgLqUhPc=
=Ez1J
-----END PGP SIGNATURE-----

 Sorry
Figurati, sbagliando si impara.... e poi cosi' la questione e' stata
affrontata in modo piu' approfondito e cio' ha fatto bene anche ad altri. Le
discussini sono quasi sempre costruttive.
Tommy

 non và bene "normalmente"..."DEVE" trovarsi lì!!
'zzate. argv[0] potrebbe anche non esserci. Il programma potrebbe anche 
non iniziare da main. Il codice eseguito prima del main potrebbe averci 
messo quello che gli pare. Che ci si trovi un path è un incidente
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.5. C, C++ and ASM developers
                               and beta testers are welcome!