Verfasst am: 10.07.2009, 12:18
Titel: Pfad aus edit weiter verwenden
Hi,
ich verwende folgenden Code, um eine Datei über ein Browse-Menü in ein Editierfeld einzulesen.
Nun möchte ich jedoch in einer anderen Funktion den Pfad aus diesem Feld (edit1) auslesen und als Variable bzw. Pfadangabe verwenden.
Code:
[filename, pathname] = uigetfile('*.csv','Oeffne Exceldatei -- Temperatur');
if ~isequal(filename, 0)
%open(file);
set(handles.edit1,'String',fullfile(pathname, filename));
end
wenn der Pfad im edit-Feld drin steht, dann kannst du jederzeit dieses wieder auslesen. Im Forum wurde dieses schon ziemlich häufig besprochen... (bin nur grad zu faul zum suchen)
function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename, pathname] = uigetfile('*.csv','Oeffne Exceldatei -- Temperatur');
if ~isequal(filename, 0) set(handles.edit1,'String',fullfile(pathname, filename));
Path1=fullfile(pathname, filename);
assignin('base','Path1',Path1); % zur Übergabe an den Workspace end
Diese Lösung ist seeeehr naja - aber sie funktioniert, ich weiß...
Entweder du übergibst die beiden Variablen an die handles-Struktur oder du arbeitest mit SETAPPDATA, GETAPPDATA. Das sind zwei weitaus elegantere Lösungen. Zu beiden Sachen findest du hier im Forum etwas, zu letzterem sogar in der Skripte/Tutorial-Ecke.
Und wo steht die Funktion? Ist es ein externes File? Eine andere GUI ist auch nix weiter als eine Funktion. Und was da funktioniert, funktioniert auch bei "normalen" Funktionen.
_________________
Zur Zeit steht es in einer externen Funktion (also in einem externen m-File im gleichen Pfad).
Um mir jedoch einen besseren Programmierstil anzugewöhnen, würde ich die Funktion auch im gleichen File ausführen ;o).
Kannst du mir vielleicht dabei helfen, das edit1-Feld im gleichen Matlab-File auszulesen und zu verwenden ?
Syntax ?
also hast du ein externes m-file "my_fun" mit der Funktion "my_fun"? Das ist völlig in Ordnung so.
Außerdem hast du ein GUI von welchem aus du diese Funktion aufrufst? Dann hast du verschiedene Möglichkeiten: Du kannst mit SETAPPDATA/GETAPPDATA arbeiten, du könntest mit FINDOBJ nach dem handle von dem edit-Feld suchen und es dann auslesen oder du übergibst den Inhalt des Feldes nach dem Auslesen an die Funktion. Letzteres würde dann so aussehen:
Code:
% Inhalt der Pushbutton-Callback [filename, pathname] = uigetfile('*.csv','Oeffne Exceldatei -- Temperatur');
if ~isequal(filename, 0)
%open(file);
set(handles.edit1,'String',fullfile(pathname, filename));
end
% ich gehe einfach mal davon aus, dass du hier jetzt deine Funktion aufrufst:
my_fun(x,y,z,get(handle.edit1,'String'));
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.