Wenn der Parameter '/ndt' gefunden wird, sollen die beiden nachfolgenden Parameter gespeichert werden. Wenn er nicht gefunden wird, soll nur normal gestartet werden. Leider funktioniert es nicht so, wie ich es mir vorstelle:
ich habe mich jetzt lange nicht mehr mit der Problematik beschäftigt und bin deshalb noch nicht weiter gekommen. Nun wollte ich mich dem Thema wieder zuwenden. Hat jemand einen Rat?
also, wenn du noch keine speziellen Variablen im Hauptprogramm dafür hast (und dann auf die Base zugreifen willst/kannst), würde auch ne globale Variable reichen.
den vergleich musst du dann da machen, wo auch sonst (ohne /ndt) die Dateien geöffnet werden, z.B. dann, wenn deine neue global nicht leer ist. (achtung: nicht auf exits prüfen, existieren tun die globalen immer...)
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
vielen Dank erstmal für deine Antwort. Leider verstehe ich deine
Antwort nicht ganz. Vielleicht hole ich mal ein bisschen weiter aus.
Meine *.exe wird aus einem anderen Programm aus aufgerufen und da dort die Speicherorte der Input- und Outputdatei schon festgelegt werden, sollen diese Pfade in mein Programm herein übergeben werden, da sie ja bekannt sind und nicht noch einmal neu festgelegt werden müssen. Wenn ich nun die mit mcc erstellte *.exe aus dem DOS-Fenster starte und zwar gleich mit Übergabe der Pfade, dann sollen diese einfach als Strings in zwei separate Variablen gespeichert werden. Und genau hier weiß ich nicht, wie ich das machen kann. An welcher Stelle kann ich diese Parameter abgreifen und dauerhaft speichern? Bisher scheinen sie immer überschrieben zu werden. Ich weiß einfach nicht weiter und bin für jede Hilfe dankbar. Heute abends poste ich am besten gleich noch mal, was beim Starten der exe im cmd-Window dasteht. Bin gerade nicht am richtigen Rechner.
* ein Programm ruft deine Matlab-exe auf
* das will manchmal Pfade speichern, manchmal nicht
(d.h. vorherbestimmt gibt es Pfade, die ggf. geändert werden können)
-> d.h. du musst deine Pfade in eine Art ini-Datei auslagern, und dorthin speichern wenn du in angegebenen Codeteil landest.
Im normalen Programmablauf kannst du dann in jedem Fall die Werte aus der ini nehmen.
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
es soll so sein, dass man im cmd-fenster eingibt: main_menu.exe ndt path=C:\Windows\Temp\input.txt path=C:\Windows\Temp\output.txt
wie das von einem anderen programm aus passiert, soll nicht meine sorge sein, aber für dieses von mir angegebene syntax soll folgendes passieren:
1. initialisiere das programm
2. checke in einer if-anweisung, ob der parameter 'ndt' da ist
3. wenn ja: speichere die beiden dahinter folgenden pfade als strings in separate variablen und öffne das gui
4. wenn nein: öffne das gui trotzdem, aber ohne eine pfadzuweisung zu kennen
so sieht der beginn meines mit guide erzeugten gui-codes aus:
% MAIN_MENU M-file for main_menu.fig % MAIN_MENU, by itself, creates a new MAIN_MENU or raises the existing % singleton*.
%
% H = MAIN_MENU returns the handle to a new MAIN_MENU or the handle to % the existing singleton*.
%
% MAIN_MENU('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAIN_MENU.M with the given input arguments.
%
% MAIN_MENU('Property','Value',...) creates a new MAIN_MENU or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before main_menu_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to main_menu_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text91 to modify the response to help main_menu
% Last Modified by GUIDE v2.5 18-Jan-2010 14:52:11
% --- Executes just before main_menu is made visible. function main_menu_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to main_menu (see VARARGIN)
so und mein problem ist nun, dass ich nicht einfach mit dem befehl varargin{1} den ersten von mir eingegebenen parameter bekomme, sondern irgendwie eine 175.002. wie kann ich nun die tatsächlich angegebenen strings im programm abrufen. erst wenn diese übergabe funktioniert kann ich ja meinen finalen programmcode tatsächlich mit mcc erzeugen lassen. bisher habe ich es immer nur erzeugt, um zu sehen, ob es funktioniert.
es muss doch auch ohne das schreiben einer separaten datei gehen.
komischerweise gibt er mir im cmd-window hier komischerweise die korrekten strings an, aber wenn ich diese (als global formulierten) dann in meinem gui mit
achso, ich dachte, das ginge schon.
warum du nur eine Zahl zurückbekommst, weiss ich leider nicht. Würde vermuten, dass das nur ein Handle ist - kannst du zur Laufzeit aus dem cmd in Matlab debuggen? Dann würde vielleicht schon ein get() helfen.
naja, ohne schreiben einer seperaten datei würde ja bedeuten, dass der anwender/das andere Programm IMMER mit dem Parameter arbeiten soll...
Ähm, aber in deinem Code definierst du doch ZUERST handles.inputpath und dann legst du inpath fest
Zitat:
Code:
% --- Executes just before main_menu is made visible.
ich hab jetzt die lösung und poste sie nächste woche. danke trotzdem für deine hilfe.
beste grüße und ein schönes wochenende wünscht
pfeili
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
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.