WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Speichern, Speichern unter, Öffnen

 

Semmeljoke
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 15.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2013, 20:16     Titel: Speichern, Speichern unter, Öffnen
  Antworten mit Zitat      
Hallo,

ich möchte gerne die Variablen, die ich bei meinem kleinen Matlab-Programm eingebe, normal abspeichern ("Speichern"), einmal auswählen können wo ich es abspeichern will ("Speichern unter") und natürlich bei Aufrufen der entsprechenden Datei mit öffnen, wieder alle Werte in meinem Programm haben. Ich mache das ganze mit Menüs, die ich mir mit dem Menu-Editor erstellt habe.
Gesamt gibt es 4 Werte auszulesen.

Bei meinem Speichern Callback funktioniert mal gar nichts.
Code:
function speichern_Callback(hObject, eventdata, handles)
% hObject    handle to speichern (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

  fid = fopen(handles.file,'wt');
    if (fid==-1)
        % Dialogfenster
        return
    end    
   fprintf(fid,'%f\n',get(handles.e_modul,'String'));
   fprintf(fid,'%f\n',get(handles.traegheitsmoment,'String'));
   fprintf(fid,'%f\n',get(handles.traegerlaenge,'String'));
   fprintf(fid,'%f\n',get(handles.gleichlast,'String'));
   fopen(fid);

guidata(hObject,handles);


Bei meinem Speichern unter speichert er falsche Werte ab:
Code:
function speichern_unter_Callback(hObject, eventdata, handles)
% hObject    handle to speichern_unter (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

[file,path] = uiputfile('*.fcn','Funktion abspeichern');

if (file)
    handles.file = fullfile(path,file);
    set(handles.speichern,'enable','on')
    speichern_Callback(hObject, [], handles)
end

guidata(hObject,handles);
 


Komme leider auf keine Lösung, wie ich das zum Laufen bringe. Bitte um Hilfe! Merci.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.09.2013, 23:46     Titel:
  Antworten mit Zitat      
Hallo,

bitte möglichst präzise sagen, wo das Problem liegt.

Zitat:
Bei meinem Speichern Callback funktioniert mal gar nichts.
hilft leider nicht, um das Problem zu diagnostizieren.

Was mir jedoch auffällt: die Einträge in den Textfeldern sind Strings, du versuchst sie aber als Doubles (%f) zu verarbeiten. Also mal mit %s statt %f versuchen.

Dein Speichern_unter ruft ja das Speichern auf. Wenn du also bei einem die Probleme gelöst hast, sollte auch das andere funktionieren.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Semmeljoke
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 15.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2013, 13:30     Titel:
  Antworten mit Zitat      
Servus,

ja hast recht. Das mit dem String ist mir schon aufgefallen. Funktioniert jetzt jedenfalls.
Das speichern unter geht noch nicht.
Ich möchte nur ein paar Strings abspeichern. Nachdem ich
Code:

[file,path] = uiputfile('*.fcn','Funktion abspeichern');
aufrufe, öffnet sich ja ein Fenster. Wie erzeuge ich dann eine Datei an dem Ort als *.txt?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.10.2013, 15:14     Titel:
  Antworten mit Zitat      
Hallo,

uiputfile gibt nur den Dateinamen bzw. -pfad zurück. Die Datei schreiben muss man dann schon selbst. Das machst du aber doch an sich in deinem anderen Callback? Ich verstehe also leider das Problem nicht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Semmeljoke
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 15.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2013, 15:36     Titel:
  Antworten mit Zitat      
Servus,

verstehe auch nicht, was das Problem war. Habe jedenfalls nur einen ganz komischen Code mit "Speichern unter" abspeichern können und lustigerweise beim Befehl "öffnen" nur Dateien öffnen können, die im gleichen Ordner gespeichert waren.
Habe über Internetrecherche jetzt einen Code zusammengebastelt (das trifft es wohl am ehesten), der tatsächlich funktioniert. Warum, weiß ich nicht, aber es funktioniert Wink

Hier die Lösung:

Code:
function speichern_Callback(hObject, eventdata, handles)
% hObject    handle to speichern (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
fid = fopen('Schnittgroessen_Biegelinie.txt','wt');
if (fid==-1)
        % Dialogfenster
        return
    end
   fprintf(fid,'%s\n',get(handles.e_modul,'String'));
   fprintf(fid,'%s\n',get(handles.traegheitsmoment,'String'));
   fprintf(fid,'%s\n',get(handles.traegerlaenge,'String'));
   fprintf(fid,'%s\n',get(handles.gleichlast,'String'));
   fclose(fid);
 
 guidata(hObject,handles);
 
   
% --------------------------------------------------------------------
function speichern_unter_Callback(hObject, eventdata, handles)
% hObject    handle to speichern_unter (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

[file,path] = uiputfile('*.txt','Funktion abspeichern');

 path_file = fullfile(path, file);
 fid = fopen(path_file,'wt');

if (fid==-1)
        % Dialogfenster
        return
    end
  fprintf(fid,'%s\n',get(handles.e_modul,'String'));
  fprintf(fid,'%s\n',get(handles.traegheitsmoment,'String'));
  fprintf(fid,'%s\n',get(handles.traegerlaenge,'String'));
  fprintf(fid,'%s\n',get(handles.gleichlast,'String'));
  fclose(fid);
 
 guidata(hObject,handles);


% --------------------------------------------------------------------
function oeffnen_Callback(hObject, eventdata, handles)
% hObject    handle to oeffnen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

[file,path] = uigetfile('*.txt','Datei öffnen');

 path_file = fullfile(path, file);
 fid = fopen(path_file,'rt');
   
    if (fid==-1)
        % Dialogfenster
        return
    end

    set(handles.e_modul,'string',num2str(fscanf(fid,'%f',1)));
    set(handles.traegheitsmoment,'string',num2str(fscanf(fid,'%f',1)));
    set(handles.traegerlaenge,'string',fscanf(fid,'%f',1));
    set(handles.gleichlast,'string',fscanf(fid,'%f',1));
    fopen(fid);

guidata(hObject,handles);
 


Trotzdem danke fürs drüberschauen und Gedanken machen.

GLG
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.