Anweisungen nacheinander ausführen



  • Hallo zusammen,

    bei einem Click-Event wird eine Batch aufgerufen (diese erstellt eine txt) und im zweiten Schritt lese ich die txt aus. Leider wird dies zeitgleich ausgeführt, sodass es sein kann, dass die txt noch gar nicht erstellt worden ist. 😞
    Wie kann ich dem Programm sagen das es erst die txt auswerten soll, wenn die batch durchgelaufen ist.

    Hier mein Code:

    System::String^ args;
    args = System::String::Format("/C K:\\APP\\MAC_Adressen\\modmac.bat admin add {0} {1}", label1->Text, label2->Text);
    System::Diagnostics::Process::Start("cmd.exe", args);

    StreamReader ^lesen=gcnew StreamReader("K:\\APP\\MAC_Adressen\\temp2.txt");
    while(lesen->EndOfStream == false) // solange Dateieinde nicht erreicht
    MessageBox::Show(lesen->ReadToEnd()); // zeilenweise einlesen und ausgeben
    lesen->Close();

    Vielen Dank 🙂



  • Bausen90 schrieb:

    bei einem Click-Event wird eine Batch aufgerufen (diese erstellt eine txt) und im zweiten Schritt lese ich die txt aus. Leider wird dies zeitgleich ausgeführt, sodass es sein kann, dass die txt noch gar nicht erstellt worden ist. 😞

    Stimmt nicht, die Anweisungen werden hintereinander ausgeführt. Aber die Batch-Datei wird natürlich im Hintergrund gestartet.

    Wie kann ich dem Programm sagen das es erst die txt auswerten soll, wenn die batch durchgelaufen ist.

    Warten, bis die Batch abgelaufen ist.

    System::String^ args; 
    args = System::String::Format("/C K:\\APP\\MAC_Adressen\\modmac.bat admin add {0} {1}", label1->Text, label2->Text); 
    System::Diagnostics::Process process^ = System::Diagnostics::Process::Start("cmd.exe", args);
    process->WaitForExit();  // <--
    delete process;          // Process ist IDisposable
    
    StreamReader ^lesen=gcnew StreamReader("K:\\APP\\MAC_Adressen\\temp2.txt");
    while(lesen->EndOfStream == false) // solange Dateieinde nicht erreicht
    MessageBox::Show(lesen->ReadToEnd()); // zeilenweise einlesen und ausgeben
    lesen->Close();
    


  • Vielen vielen vielen Dank.
    Hat super geklappt 🙂 👍


Anmelden zum Antworten