Problem mit System( )



  • Hi.

    Ich möchte dass man aus einer Dos Oberfläche eine Mp3 aufruft, und sie direkt mit Winamp gestartet wird. (Winamp hat bei mir die Zuordnung für mp3s.)

    Wenn ich jetzt mit system die file aufrufen will, geht es nur wenn der befehl so aussieht:

    system("C:\\Eminem.mp3");
    

    ist hingegen ein Space drin, geht es nicht

    system("C:\\Eminem vs Busta vs Jay-Z - Big Pimpin remix unreleased and rare.mp3");
    

    woran liegt das und wie kann ich machen dass system auch leerzeichen annimmt?



  • das ist kein ISO C Problem, da der String, den du an system übergibst 100% Platform abhängig ist.

    Wahrscheinlich kennst du dich mit der Konsole nicht so gut aus, ich würde mal versuchen noch ein paar \"\" um den String zu machen (das ist auch der Grund warum man eigentlich keine Leerzeichen zwischen Dateinamen macht, aber dank MS ist das ja mittlerweile gang und gäbe 😡 )



  • den string in Anführungszeichen setzen, so etwa:

    system("\"String blub blah\"");



  • oder eben die DO$ version des Pfades nehmen:

    c:\\eigene1\\mp3sam1\\irgend~1.mp3



  • Das wäre "Eminem~1.mp3".
    Dos unterstützt nämlich noch nicht soviele Zeichen und vor allem keine Leerzeichen, da das folgende Wort dann als weiterer Parameter behandelt wird.

    P.S.: Du kannst aber auch mittels DirectX eine MP3 abspielen, das würde dann direkt im Programm funktionieren und der Benutzer bräuchte kein zusätzliches Programme wie eben Winamp

    [ Dieser Beitrag wurde am 08.04.2003 um 14:41 Uhr von pAngel editiert. ]



  • Original erstellt von pAngel:
    **Das wäre "Eminem~1.mp3".
    **

    Vielleicht. Vielleicht auch Eminem~3.mp3 oder sonstwas. Den DOS-Namen bekommt man nur über entprechende WinApi-Funktionen raus.



  • die leerzeichen durch % zu ersetzen



  • @Win-Do$: Herzlichen Dank Schnukki *g*!! die kiste läuft!

    system("\"C:\\Music\\d-12 - devil's night\\18 - Revelation.mp3\"");
    

    [ Dieser Beitrag wurde am 12.04.2003 um 22:31 Uhr von Peter Piksa editiert. ]


Anmelden zum Antworten