Terminate program once input is required using system()
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Marc Jakobi
el 6 de Mayo de 2014
Editada: Marc Jakobi
el 27 de Feb. de 2015
Hi. I am trying to run TRNSYS through MATLAB in a script. So far it looks like this (simplified):
Deckname = ['TRNSYS_A1_',num2str(idxAS),'.DCK'];
Deckpath = 'D:\Trnsys_Coll\';
Trnpath = 'C:\Program Files\Trnsys16_1\Exe\';
cd(Trnpath)
Trnrun = ['Trnexe.exe ',Deckpath,Deckname];
system(Trnrun)
cd(Deckpath)
delete(Deckname)
The problem is that the program I am running requires an input (such as enter) to close. So my MATLAB-code gets "stuck" at the line
system(Trnrun)
saying it is busy. Is there a way I can terminate the program once the input is required? It would take too long to do it manually, because it's all in a very long loop.
0 comentarios
Respuesta aceptada
Friedrich
el 9 de Mayo de 2014
Editada: Friedrich
el 9 de Mayo de 2014
Hi,
maybe use piping and pipe in a txt file with one empty line. So create a new txt file which contains one line (simply press enter once in the txt file) and save it in some folder with some name. Then when you call your Trnexe.exe pipe in that file by using:
Trnrun = ['Trnexe.exe ',Deckpath,Deckname, '<C:\some_folder\some_file.txt'];
system(Trnrun)
So when the application wants in input it doesn't use STDIN it uses one line of the txt file. This basically simulates the enter press. Let me know if that works for you.
1 comentario
Más respuestas (0)
Ver también
Categorías
Más información sobre MuPAD en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!