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

Fehler uigetfile in executable

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.07.2013, 13:57     Titel: Fehler uigetfile in executable
  Antworten mit Zitat      
Hallo zusammen,

nach langer suche, habe ich bisher leider noch keine Antwort auf meine Frage gefunden. Ich erhoffe mir hier nun, einen Denkanstoß oder vlt. sogar ein Lösung.

Das Problem:
Ich habe ein Programm geschrieben, in dem eine Datei ausgewählt werden kann. Dann einige Schritte Datenbearbeitung stattfinden und dann diese als eine DAT-Datei ausgegeben wird. In der m-Datei funktioniert das alles super.

Wenn ich eine EXE-Datei erstelle, kommt es häufig vor, dass die Anwendung gar nicht erst startet oder ich gar keine Datei auswählen kann und dann das Programm zusammenbricht.
Hierzu mal der Auszug von meinem m-file:
Code:

...
msg1=msgbox(sprintf('Select the data file'));
waitfor(msg1)
[filename,pathname]=uigetfile('*.bin');
s=dir([pathname,'\',filename]);
groesse=s.bytes;

fid=fopen([pathname,'\',filename]);
...
 

Nachdem ich das "OK" von der Messagebox gedrückt habe, bricht mein Programm immer zusammen. Woran kann das liegen? Habt ihr sowas auch schon erlebt?
Ich wäre für Hinweise oder sogar eine Lösung sehr dankbar.

D.


Harald
Forum-Meister

Forum-Meister


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

was genau bedeutet "Zusammenbruch"? Gibt es eine Fehlermeldung, und wenn ja: welche? Mit welcher MATLAB-Version arbeitest du?

Insbesondere falls keine Fehlermeldung sichtbar ist: Probiere bitte auch mal, die .EXE aus einer Konsole heraus (cmd) auszuführen. Kommt dann eine Fehlermeldung?

Falls hier keine Antwort kommt, ist so eine Frage auch beim Technischen Support von MathWorks gut aufgehoben.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2013, 08:35     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke für deine Antwort.
Also Zusammenbruch bedeutet, dass nach dem Betätigen von OK aus der Messagebox, sich alle Fenster schließen und das Programm beendet ist.
Ich arbeite mit Matlab R2010b.
Die Fehlermeldung ist nur sichtbar, wenn ich das Ganze aus der Eingabeaufforderung öffne.
Die Fehlermeldung lautet:
"??? Too many outputs requested. Most likely cause is missing [] around left hand side that has comma separated list expansion.
Error in ==> nameprogramm at 37""

Die Zeile 37 ist
Code:
groesse1=s.bytes;


Hast du aber zufällig ne Idee, warum manchma das Starten gar nicht erst klappt. Manchma muss ich das ganze bis zu drei mal Starten bevor ich überhaupt arbeiten kann.

Heute hats zum Teil mal wieder geklappt. Das versteh ich nicht. =(


Grüße
D.
 
Harald
Forum-Meister

Forum-Meister


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

Wählst du eine oder mehrere Dateien aus?

Mich verwundert, dass das Problem nur bei der .exe auftritt.
Schreib doch mal vor Zeile 37
Code:

damit das angezeigt wird. Vielleicht hilft das bei der Problemlösung.

Zitat:
Hast du aber zufällig ne Idee, warum manchma das Starten gar nicht erst klappt.

Nein, habe ich nicht. Da könnte wie gesagt Technischer Support von MathWorks ein guter Ansprechpartner sein.

Falls es ein Problem im Produkt ist, kann es natürlich gut sein, dass das in einer neueren MATLAB-Version behoben ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.07.2013, 10:32     Titel:
  Antworten mit Zitat      
Hallo

Wozu brauchst du die MSGBOX, das kannst doch auch mit UIGTEFILE alles erledigen
Du solltest unbedingt auch die Abbruchbedingung der UIGETFILE abfangen
Nutze FULLFILE um die Pfade zusammenzusetzen, ist einfacher und System unabhängiger

so würde ich das machen:
Code:

[filename, pathname] = uigetfile('*.bin','Select the data file');
if isequal(filename,0) || isequal(pathname,0)
  return;
end

s = dir(fullfile(pathname,filename));
groesse = s.bytes;

fid = fopen(fullfile(pathname,filename));
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2013, 10:58     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die schnelle Antwort.

Ich will nur eine Datei auswählen, aber dazu kam ich ja nicht mal =(
Bricht ja vorher schon ab. Von daher wurde mir die Größe trotzdem nicht angezeigt.

Ich hab jetzt mal die beiden Messageboxen vor der Datei-Auswahl weggelassen und witziger weise läuft es jetzt stabil. Also ich kann meine Datei auswählen etc. Ich versteh zwar nicht warum das so ist, aber ich bin glücklich, dass es jetzt läuft.

Ich danke dir trotzdem für deine Hilfe!!!

Grüße
D.
 
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.