VARIABLEN IN SYSTEMBEFEHLEN



  • Hi!

    ich hoffe ihr könnt mir helfen!
    Ich möchte Variablen(strings) in SYSTEM-befehlen unterbringen.

    zb. wechselnde IP-adressen und Textinhalte bei netsend:

    SYSTEM("net send IP_VARIABLE TEXT_VARIABLE");

    ______________________________________________________________________

    ich erhielt in nem anderen Forum folgende Antwort, aber leider geht das nicht:

    ja,hängt aber von Compiler und genutzter Stringklasse oder char?? ab.
    String ip="127.0.0.1";
    String ausgabe="net send "+ip+"TEXT_blablabalbala";
    system(ausgabe);

    _______________________________________________________________________

    ich hab das ausprobiert, mit folgender Variante:

    char VARIABLEN_NAME;

    VARIABLEN_NAME="PAUSE";

    system("VARIABLEN_NAME");

    // jetzt müsste er ja eigenntlich den befehl SYSTEM("PAUSE");
    // ausführen, macht er aber nicht, sondern er sucht den Befehl VARIABLEN_NAME
    // den er natürlich nicht finden kann 🙂 !

    _____________________________________________________________________
    vermutlich ist das ganze ein lächerlich einfaches Problem,
    aber ich bin halt Anfänger

    4 x THX im Voraus !



  • Hallo cayamides!

    Erstmal zum letzten Listing:

    system("VARIABLEN_NAME");
    

    Das kann nicht gehen weil der Variablenname in Gänzefüsschen stehen und daher denkt der Compiler dies sei eine Zeichenkette(auch string genannt). Wenn dann muss das so heißen:

    system(VARIABLEN_NAME);
    

    Nun zu deiner Frage:

    #include<string>	//Strings
    #include<cstdio>	//Die Lib für die C-Funktion sprintf
    #include<cstdlib>	//system();
    
    using namespace std;
    
    int main()
    {
    	char befehl[1000];
    	char ip[]		= "127.0.0.1";
    	char text[]	= "Dieser Text wird an die IP Adresse gesendet";
    
    	//In befehl wird der zusammengesetzte Befehl gespeichert
    	//%s sind Platzhalter für String d.h., dass was dahinter steht wird dort eingesetzt
    	//so wird hier in das erste %s die ip eingesetzt und im zweiten %s der text
    
    	sprintf(befehl,"net send %s %s",ip,text);
    
    	//Befehl an System senden
    	system(befehl);
    
        return 0;
    }
    

    viel Spaß damit

    mfg. Sven (Deepy)



  • 👍
    vielen Dank nochmal...


Anmelden zum Antworten