Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Name des Programs

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
22.12.2003, 14:20 Uhr
ai-tee



Hi alle,

ich wollte meinen Programmnamen auslesen mit argv[0] weil ich dachte man bekommt so den Namen ... ich bekomme aber zusätzlich noch den Pfad ... geht das auch ohne Pfad irgendwie?

Eigentlich wollte ich jetzt nicht noch alles wegschneiden ... ich würd schon eigentlich ungerne das Suffix entfernen ... das brauch ich nämlich auch nicht, geht wohl aber nicht anders, oder?

greetz aitee
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.12.2003, 14:45 Uhr
typecast
aka loddab
(Operator)


Also mit reinem C++ wirst du so wohl nur so machen können.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.12.2003, 15:12 Uhr
ai-tee



Schade ... ... nagut ...

hmm ... obwohl wo Du so sagst ... "reines" ... meinst Du denn vielleicht mit MFC gehts leichter?
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.12.2003, 15:21 Uhr
virtual
Sexiest Bit alive
(Operator)


Du kannst einfach ein paar Zeilen schreiben, die das machen:

C++:
char* ptr = *argv + strlen(*argv);
/* Pfad entfernen */
while (*argv!=ptr && ptr[-1]!='/' && ptr[-1]!='\\') --ptr;
*argv = ptr;
/* Suffix entfernen */
ptr = strrchr(*argv, '.');
if (ptr) *ptr = 0;


Oder, wenn nur Windows:

C++:
char* ptr = *argv + strlen(*argv);
/* Pfad entfernen */
ptr = strrchr(*argv, '\\');
if (ptrr) *argv = ptr+1;
/* Suffix entfernen */
ptr = strrchr(*argv, '.');
if (ptr) *ptr = 0;


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.12.2003, 09:19 Uhr
ai-tee



Thx virtual ... ich dachte halt es gibt vielleicht einfach nur ne Konstante oder sowas oder ne MFC Funktion ... mein Program is soo billig und der Code schon viel zu lang ... da kommt man ins Grübeln von wg. Aufwand/Nutzen

Sag mal was meinst Du mit "nur Windows"
Ist das erste auch Unix kompatibel?
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.12.2003, 10:10 Uhr
ai-tee



Btw. kannst mir das obrige Beispiel mal Schritt für Schritt erklären?

Warum benutzt Du nicht Sachen wie .Getlenght, etc.?
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.12.2003, 10:21 Uhr
ai-tee




C++:
char* ptr = *argv + strlen(*argv);
/* Pfad entfernen */
while (*argv!=ptr && ptr[-1]!='/' && ptr[-1]!='\\') --ptr;
*argv = ptr;
/* Suffix entfernen */
ptr = strrchr(*argv, '.');
if (ptr) *ptr = 0;



Frage: Warum mal den "*" direkt hinter char und warum mal den "*" direkt an argv? Ist das ein Unterschied?
Frage: Ist das reines Cpp oder C?
Frage: Wie krieg ich damit den Programmnamen? "ptr" ist leer.

thx und Grüße aitee
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.12.2003, 10:27 Uhr
ai-tee



Ok, 4get it ich glaub ich checks langsam ... und ich glaube ich habe jetzt den wahren Nutzen von Pointern und die wahre _Hölle_ der Pointer kennengelernt ... omg das ist ja grauenhaft!! :P
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.12.2003, 10:29 Uhr
derphilipder



char* ptr und char *ptr sind gleichwertig.

Und pointer sind eine schöne Sache!
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.12.2003, 11:00 Uhr
kronos
Quotenfisch
(Operator)


wenn du's unbedingt kurz halten willst:

C++:
char *name = *argv + strrchr(*argv, '/');

edit:
bzw. unter windows das ganze mit '\\'
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 23.12.2003 um 11:01 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: