|
|
*.exe mit Parametereingabe |
|
pfeili |
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 12:17
Titel: *.exe mit Parametereingabe
|
|
Liebe Leute,
ich habe aus einer Gui mittels mcc eine menu.exe erzeugt. Nun möchte ich selbige aus der Kommandozeile starten und dabei gleich noch einen Parameter übergeben. Dabei handelt es sich um eine Input-Datei im txt.-Format, deren Pfad und Namen ich kenne.
Wie muss ich dazu mein menu-m-file bearbeiten, um diesen Parameter beim Starten der menu.exe übergeben zu bekommen? Es hat ja sicher etwas mit varargin zu tun, womit ich allerdings noch nie gearbeitet habe.
Für eure Hilfe danke ich bereits im Vorfeld vielmals.
pfeili
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 12:21
Titel:
|
|
Hallo,
es reicht an sich vollkommen aus, die Eingabeparameter wie üblich zu definieren. Beim Aufruf kannst du die ' dann auch weglassen.
Eine schöne Alternative wäre, den Nutzer die Datei mit uigetfile auswählen zu lassen
Grüße,
Harald
|
|
|
pfeili |
Themenstarter
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 12:33
Titel:
|
|
Lieber Harald,
vielen Dank für deine rasche Antwort. Eine Lösung mit uigetfile habe ich schon realisiert, allerdings will mein Chef zusätzlich die hier beschriebene Möglichkeit haben.
Bitte verzeih mir, wenn ich noch mal nachfrage, aber wie mache ich das für die von mir vorgeschlagene Form, z. B.
Woher kennt mein Programm diesen manuell eingegebenen Pfad dann als Parameter bzw. wie bekomme ich ihn dann innerhalb der Funktion aufgegriffen und gespeichert?
pfeili
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 12:52
Titel:
|
|
Hallo,
es ist wirklich so einfach, wie es nur sein kann. Du musst die Funktion nur mit einem Eingabeargument definieren. Versuche z.B. folgendes zu kompilieren:
Das einzige, worauf man achten muss: sämtliche Argumente kommen als Strings nach MATLAB.
Grüße,
Harald
|
|
|
pfeili |
Themenstarter
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 14:03
Titel:
|
|
Der Kopf meiner menu-Funktion (welche wiederum viele Unterfunktionen enthält) sieht so aus:
Wenn ich nach erfolgreicher Kompilierung im Kommandofenster
eingebe, so erscheint folgende Meldung:
Zitat: |
''C:\Windows\Temp\daten.txt''
Warning: The input to STR2FUNC "'C:\Windows\Temp\daten.txt'" is not a valid function name. This will gernerate an error in a future release.
> In menu at 37
|
Anschließend listet er mir die kompletten CreateFunctions auf, die in menu.m beim Erstellen des GUI erzeugt wurden.
Scheinbar habe ich irgendetwas noch nicht begriffen. Sorry.
pfeili
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 14:12
Titel:
|
|
Hallo,
mal eine ganz andere Frage: macht menu.m in MATLAB das, was es soll?
Meine Vermutung ist an dieser Stelle, dass die falsche menu.m aufgerufen wird.
Vorschläge:
1. Umbenennen der Datei
2. Sicherstellen, dass du sowohl beim Kompilieren als auch beim Aufruf in dem Verzeichnis bist, in dem sich DEINE menu.m befindet.
Ansonsten ist mir schleierhaft, was ein Dateiname als Eingabe für str2func bewirken soll.
Grüße,
Harald
|
|
|
pfeili |
Themenstarter
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 14:25
Titel:
|
|
Also das sollte alles stimmen. Der reine Aufruf
von der Kommandozeile aus funktioniert ja auch. Nur unter Hinzuziehen des String-Pfades gibt es dann dieses Problem.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 14:29
Titel:
|
|
Hallo,
da weiß ich zunächst auch nicht mehr weiter. Um dir weiterhelfen zu können, bräuchte ich ein Beispiel, das die Fehlermeldung reproduziert.
Grüße,
Harald
|
|
|
eupho |
Forum-Meister
|
|
Beiträge: 777
|
|
|
|
Anmeldedatum: 07.01.09
|
|
|
|
Wohnort: Marburg
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 01.04.2011, 15:31
Titel:
|
|
muss funktionieren, zusätzliche '' sind nicht notwendig, weil jeder Input automatisch ein String ist. Falls du integers übergeben willst, kannst du mit
arbeiten..
|
|
|
pfeili |
Themenstarter
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 04.04.2011, 08:10
Titel:
|
|
Liegt es vielleicht daran, dass er mir beim Starten der exe noch folgende Meldung ausgibt:
Zitat: |
MATLAB:I18n:Inconsistent Locale - The system locale setting,...is different from the user locale setting...
|
Ich mach mich mal schlau, wie ich das beseitigen kann und melde mich dann noch mal.
Beste Grüße
pfeili
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.04.2011, 17:21
Titel:
|
|
Hallo,
durch Ändern der Ländereinstellungen auf Nutzerebene.
Allerdings führt diese Warnung allgemein nicht zu Problemen.
Grüße,
Harald
|
|
|
pfeili |
Themenstarter
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 05.04.2011, 10:27
Titel:
|
|
Ok, aber woran könnte es dann noch liegen?
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.04.2011, 11:50
Titel:
|
|
Hallo,
könnte es sein, dass menu bei Dir ein GUI ist, welches Du mit guide erzeugt hast? Das würde zur Fehlermeldung passen. In dem Fall müsste es um Zeile 37 in etwa so aussehen:
Dann würde ich folgendes machen: die Zeilen ersetzen durch
d.h., Du fängst den Fall, dass varargin{1} mit "path=" anfängt, ab. Das .exe müsstest Du dann mit
aufrufen (und dann natürlich das "path=" entfernen!).
Titus
PS: das selbe Problem müsste aber auch schon in MATLAB und nicht nur bei menu.exe auftreten, oder?
|
|
|
pfeili |
Themenstarter
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 05.04.2011, 12:09
Titel:
|
|
Hallo Titus,
ja, genau so ist es. Ich habe die Menüs mit guide erzeugt und anschließend mittels
zwei miteinander verknüpfte GUIs als eine exe erzeugt.
Ich schreib jetzt mal den richtigen Namen, nämlich "main_menu", welchen ich nur der Übersichtlichkeit/Verallgemeinerung als "menu" bezeichnet hatte. Dadurch können wir also ausschließen, dass es sich mit der matlabinternen Funktion "menu" beißt, wie es Harald vermutet hatte.
Ich probiere es gleich mal aus. Vielen Dank.
pfeili
|
|
|
pfeili |
Themenstarter
Forum-Century
|
|
Beiträge: 177
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2019b
|
|
|
|
|
|
Verfasst am: 05.04.2011, 14:22
Titel:
|
|
Suuuuuper. Das funktioniert.
Wie müsste ich jetzt aber mein M-File abändern, wenn ich den Aufruf so gestalten will:
Zitat: |
main_menu.exe /ndt C:\Windows\Temp\input.txt C:\Windows\Temp\output.txt
|
Und wie rufe ich diese gespeicherten Strings ab? Kann ich das einfach mit
machen und dann den Pfad vom "path=" bereinigen?
Was genau macht eigentlich der Code, bevor und nachdem du ihm sagst, dass er einen Stringvergleich mit "path=" machen soll? Bitte entschuldigt die Fragen. Ich möchte einfach gern wissen, was mir geholfen hat, um es beim nächsten Mal von allein zu bringen.
PS: Nein, wenn ich das GUI aus dem Matlab-Editor heraus gestartet habe, hat immer alles einwandfrei funktioniert.
pfeili
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|