/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
c++, argumenter til kørsel af program fra ~
Fra : JokeSten


Dato : 19-01-03 00:03

hi
Jeg sider og koder en simple mp3 browser. jeg vil gerne exekvere komandoen
: "xmms -e /path/to/mp3file med mellemrum.mp3".
så jeg jeg skriver :

string command="xmms -e /path/to/mp3file med mellemrum.mp3";
system(command.c_str());

problemet er at i linux skal mellemrum skrives som "\ "og ikke kun " ". Så
jeg skal skrive :

string command="xmms -e /path/to/mp3file\ med\ mellemrum.mp3";
system(command.c_str());

Skal jeg erstatte alle mellemrum med "\ " eller er der er en lettere metode ?
Og hvis jeg skal, hvordan gør jeg det så lettest? (ved find og replace på
den sidste del af command?)

mange tak for hjælp
JokeSten


 
 
Mads Orbesen Troest (19-01-2003)
Kommentar
Fra : Mads Orbesen Troest


Dato : 19-01-03 00:42

> problemet er at i linux skal mellemrum skrives som "\ "og ikke kun " ".

Kan du ikke bare quote det hele? Det plejer man at kunne fra en shell i
hvert fald:
string command="\"xmms -e /path/to/mp3file med mellemrum eller andre
sjove tegn.mp3\"";

Med venlig hilsen,
/\/\\ads Orbesen Troest



JokeSten (19-01-2003)
Kommentar
Fra : JokeSten


Dato : 19-01-03 01:02

<snip>

> Kan du ikke bare quote det hele? Det plejer man at kunne fra en shell i
> hvert fald:

ok. tak for svar.
Men så et lille spørgsmål til. Strengen command 'bygger' jeg op således

command ="something";
command+="some more";
command+="even more";

Hvis jeg køre system("command.c_str()"); vil programmet tro at det er kommanden
command.c_str() der skal køres og ikke indholdet fra strengen command. Skal jeg
appende " i hver ende af strengen eller hur ?

takker igen
JokeSten


Mads Orbesen Troest (19-01-2003)
Kommentar
Fra : Mads Orbesen Troest


Dato : 19-01-03 01:34

> Hvis jeg køre system("command.c_str()"); vil programmet tro at det er
kommanden
> command.c_str() der skal køres og ikke indholdet fra strengen command.
Skal jeg
> appende " i hver ende af strengen eller hur ?

Ja, det eksempel jeg gav i mit foregående svar indsatte quotes direkte i
strengen (via \") i begge ender.
Nu ved jeg ikke helt hvordan du bygger den op, men en måde kunne fx være:

command ="\"";
// Opbygning begynder... {
command +="something";
command+="some more";
command+="even more";
// } Opbygning ender...
command +='"';
system( command.c_str() );

Med venlig hilsen,
/\/\\ads Orbesen Troest



JokeSten (20-01-2003)
Kommentar
Fra : JokeSten


Dato : 20-01-03 15:27

<snip>

> Ja, det eksempel jeg gav i mit foregående svar indsatte quotes direkte i
> strengen (via \") i begge ender.
> Nu ved jeg ikke helt hvordan du bygger den op, men en måde kunne fx være:

Takker ... Efter lidt tweaking fik jeg det virke.

mvh
JokeSten

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste