|
|
Auf externes Programm warten |
|
schlierfmi |
Forum-Anfänger
|
|
Beiträge: 35
|
|
|
|
Anmeldedatum: 14.03.12
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2011a
|
|
|
|
|
|
Verfasst am: 03.11.2012, 00:20
Titel: Auf externes Programm warten
|
|
|
|
|
Hallo liebe Matlab-Gemeinde,
ich versuche schon seit ein paar Tagen ein bestehendes Programm zu verbessern.
Bisher: Mein (mit Hilfe von GUIDE programmiertes) Matlabprogramm steuert ein Berechnungsprogramm (läuft in MS-Dos) an. Bestimmte Zeilen des Outputs (ein .txt file) werden von meinem Programm ausgelesen und kommen in den Input für das externe Programm für die nächste Schleife. So wird das Ergebnis immer besser angenähert. Das Matlabprogramm füttert sozusagen das externe Programm(das nur rechnet) mit den Daten.
Der Benutzer gibt die Anzahl der Iterationsschritte vor. Momentan wartet mein Programm einfach 10 Sekunden
bis eine Schleife durchgerechnet wurde und die nächste startet.
Was ich ändern möchte: Dieses angesteuerte Programm, benötigt eigentlich nur ca.5 Sekunden (Je nach Rechenleistung) bis es fertig ist (bis sich MS-Dos-Fenster schließt).
Mein Ziel wäre nun, dass mein Programm nicht eine ungefähre Zeitangabe abwartet sondern auf das MS-Dos-Programm wartet und am besten noch eine Waitbar dazu ausgibt.
Mit welchem Befehl am besten? Waitfor?WaitForSingleObject?
mit Dos-Befehl habe ich es schon versucht (
http://www.gomatlab.de/dosstart-wai.....25961,highlight,wait.html)
Anmerkung: Das Berechnungsprogramm lässt sich mit diesem Befehl nicht ansteuern. Wenn man erst in das Verzeichnis navigiert und dann die exe ausführt funktioniert es seltsamerweise. Dann müsste ich aber zwei hintereinanderliegende Befehle in einem Commandwindow ausführen-->nur 1x "dos"-Befehl?
Vielen Dank schon mal
Grüße!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.11.2012, 09:34
Titel:
|
|
Hallo,
funktioniert es, wenn du in MATLAB zunächst mit CD in das Verzeichnis wechselst und dann den DOS-Befehl ausführst?
Den waitbar halte ich für schwierig umzusetzen, da du dann ja eben nicht auf die Beendigung der Ausführung der EXE wartest.
Ich sehe noch eine andere Möglichkeit: falls du warten musst, bis die EXE eine Datei geschrieben hat, könntest du mit
abfragen, ob es die Datei schon gibt.
Grüße,
Harald
|
|
|
schlierfmi |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 35
|
|
|
|
Anmeldedatum: 14.03.12
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2011a
|
|
|
|
|
|
Verfasst am: 03.11.2012, 10:46
Titel:
|
|
Danke Harald!
ist eine super Idee!
Die waitbar könnte man darauf beschränken, dass einfach nur eine Ladebalken ohne bestimmte Eichung hin und her fährt, nur um zu zeigen,dass im Hintergrund gerade was läuft.
Diesen Wartescreen könnte man dann abbrechen sobald die xyz.txt Datei existiert.
Gibt es so einen Wartescreen? Wie setze ich das am besten um?
Ich denke eine While exist- Schleife wäre besser geeignet für die Umsetzung.
Gibt es sowas wie While not exist ?
Dann wäre möglich
- while not exist ('xyz.txt')
waitscreen %%oder etwas in der Art
end
- weiter mit dem Auslesen der Daten...
Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.11.2012, 10:55
Titel:
|
|
Hallo,
freilich gibt's das ;)
Wenn du gerne einen Fortschrittsbalken haben willst:
Wobei ich immer finde, dass man bei solchen Fortschrittsbalken schon ziemlich genau wissen sollte, wie lange das noch dauert. Nichts finde ich nerviger als ein Fortschrittsbalken, der ewig bei 99% hängt. Aber das ist meine persönliche Meinung :)
Grüße,
Harald
|
|
|
schlierfmi |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 35
|
|
|
|
Anmeldedatum: 14.03.12
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2011a
|
|
|
|
|
|
Verfasst am: 03.11.2012, 12:00
Titel:
|
|
Hallo, ich habe noch Probleme mit der while-schleife:
Habe jetzt ein wenig rumprobiert, irgendwie wird die Meldung immer angezeigt, egal ob die Datei schon existiert oder nicht?
ich habe statt einem festen Dateinamen einen Verzeichnispfad:
Ein weiterer Wunsch wäre, dass die Box von selbst verschwindet. Momentan klickt der Benutzer sie weg und die Box erscheint nicht wieder obwohl die while-Bedingung, dass die Datei schon exisitiert nicht erfüllt ist
Viele Dank, Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.11.2012, 15:17
Titel:
|
|
Hallo,
Zitat: |
Habe jetzt ein wenig rumprobiert, irgendwie wird die Meldung immer angezeigt, egal ob die Datei schon existiert oder nicht? |
Kann es sein, dass die Datei noch vom vorherigen Durchlauf existiert?
Zitat: |
ich habe statt einem festen Dateinamen einen Verzeichnispfad: |
Ein Verzeichnispfad inkl. Dateiname (wie C:\work\test.txt) oder wirklich nur das Verzeichnis (wie C:\work)? Im letzteren Fall solltest du exist mit Option 'dir' verwenden.
Zitat: |
Ein weiterer Wunsch wäre, dass die Box von selbst verschwindet. |
Handle zurückgeben und mit close schließen
Grüße,
Harald
|
|
|
schlierfmi |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 35
|
|
|
|
Anmeldedatum: 14.03.12
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2011a
|
|
|
|
|
|
Verfasst am: 03.11.2012, 15:25
Titel:
|
|
Danke Harald,
zum 1.Punkt: Zunächst war das der Grund aber nach ein paar Fehlversuchen habe ich die Datei immer gleich wieder gelöscht
zum 2. Punkt: Es handelt sich um einen vollständigen Pfad inkl. Dateiname
Aber ich habe das Gefühl, dass ich mich selbst noch ein wenig in diese Punkte einarbeiten muss.
zum 3. Punkt: Könntest du mir kurz erklären was du unter "Handle zurückgeben und mit close schließen" meinst?
Das würde mir schon mal sehr weiterhelfen
Grüße und Dank
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.11.2012, 16:52
Titel:
|
|
Hallo,
zu der Rückfrage:
und später
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|