externes Dos-Programm starten und Rückgabe erfassen



  • Hallo,

    ich habe ja schon genug Beiträge über das Starten eines externen Dos-Programms gelesen aber nirgends konnnte ich etwas finden, wie ich die Ausgaben diese Programms auslesen kann.

    Ich habe hier eine Dosanwendung die ich mit Parameterübergabe aus meiner c++ Anwendung starten möchte und dann die Ausgaben des Programms an Variablen übergeben. Das Programm hat eine formatierte ausgabe, also z.b.

    22; ;234434;text1 - text2
    23; ;345534;text3 - text4

    dabei möchte ich dann alle werte einzeln erfassen, also die zweistelligen zahlen einzelen,dann jeweils die 6stelligen und text1,text2 ... jeweils an einzelne Variablen übergeben.

    Ich hoffe jemand kann mir weiterhelfen.

    Danke schon mal im Vorraus.



  • also mit system("programm.exe > ausgabe.txt"); kanns du die ausgabe umleiten in einer datei
    und wie man dateien in c++ öffnet kanns du hier erfahren Ströme und Dateien in C++

    #include <fstream>
    #include <string>
    #include <vector>
    using namespace std;
    
    struct Datensatz
    {
        int zahl1;
        int zahl2;
        string text1;
        string text2;
    };
    
    istream & operator>>(istream & is, Datensatz & ds)
    {
        is >> ds.zahl1;
        is.ignore( 3 ); // überspring 3 zeichen
        is >> ds.zahl2;
        is.ignore( 1 );
        getline( is, ds.text1, ';' ); // leist bis zum ;
        getline( is, ds.text2 ); // leist bis zum zeilen ende
        return is;
    }
    
    int main()
    {
        ifstream ausgabe( "ausgabe.txt" );
        if(!ausgabe)
            // datei konnte nicht geöffnet werden
    
        std::vector<Datensatz> v;
        for(Datensatz d; ausgabe >> d; )
            v.push_back( d );
    
        for(size_t i = 0; i < v.size(); ++i)
            cout << v[i].zahl1 << "	" << v[i].zahl2 << "	" << v[i].text1 << "	" << v[i].text2 << "
    ";
    }
    

    so in etwa? (ungetestet)



  • erstmal danke für die schnelle Antwort. Ich habe das jetzt mal angeschaut und ausprobiert und es funzt genau so wie ich mir das gewünscht hab. Aber mich würde jetzt mal noch interessieren ob es eine Möglichkeit gibt, die Ausgabe direkt in die jeweilige Variable zu schreiben, ohne erst eine extra Datei erzeugen zu müssen.

    [ Dieser Beitrag wurde am 08.05.2003 um 07:41 Uhr von Bibabutzemann editiert. ]


Anmelden zum Antworten