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 beim Öffnen einer Datei mit fgetl

 

Maschbauer89

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2012, 11:37     Titel: Fehler beim Öffnen einer Datei mit fgetl
  Antworten mit Zitat      
Hallo zusammen,
erstmal Entschuldigung, falls sich das Thema wiederholt. Ich habe leider über der Suchfunktion keinen passenden Beitrag gefunden.

Kurze Erläuterung:

In meinem Code fordere ich den User auf, den Pfad von einer Textdatei im Command Window von MATLAB einzugeben. Dies wird als String gespeichert und verwendet, wenn jedesmal diese Datei geöffnet werden muss. Wenn ich versuche, den Code durchzuführen, wird jedoch folgenden Fehler angezeigt:

Error using fgetl (line 44)
Invalid file identifier. Use fopen to generate a valid file identifier.

Error in SteuerDateiEinlesen (line 9)
line = fgetl(fid);

Error in Main (line 4Cool
[GeomDaten, BlockMB, BlockPolynom1, BlockPolynom2, BlockZusatz, EndDaten, HeaderMB,
HeaderPolynom1, HeaderPolynom2, HeaderZusatz, countGD, countMB, countP1, countP2,
countZ, countEnd] = SteuerDateiEi


Dementsprechend habe ich versucht, den Dateipfad manuell im Editor in dem String zu speichern (ich weiß, das ist wurst, aber trotzdem). Immerhin derselbe Fehler.

Hier ist der betreffende Ausschnitt aus meinem Code:

GearGenResultPfad = 'D:\Users\knc_am\Projektarbeit_Test\results\erg-2012-01-23_09h50m22s';

Dies wird in folgendem Aufruf verwendet:
[GeomDaten, BlockMB, BlockPolynom1, BlockPolynom2, BlockZusatz, EndDaten, HeaderMB, HeaderPolynom1, HeaderPolynom2, HeaderZusatz, countGD, countMB, countP1, countP2, countZ, countEnd] = SteuerDateiEinlesen(readType, readCount, GearGenResultPfad);

Und hier ein Ausschnitt aus der entsprechenden Funktion:
Code:
if strcmp(readType,'neu')
    fid = fopen(GearGenResultPfad);
    line = fgetl(fid);
elseif strcmp(readType,'alt')
    cnt = int2str(readCount);
    fileName = strcat('D:\Users\knc_am\Projektarbeit_Test\results\Backup\Steuerdatei_Backup_Iteration-',cnt,'.ste');
    fid = fopen(fileName);
    line = fgetl(fid);


Ich hoffe, das hilft erst mal zum Verständnis. Mein Code ist einfach sehr lang. Ich habe mit Debugging rausgefunden, dass die Variable fid jedesmal den Wert -1 trägt. Irgendwie wird die Datei nicht geöffnet. Syntax-Fehler finde ich auch nicht.

Könnte jemand hier seinen Senf dazu geben?

Gruß

edit by denny: Verwende bitte die Codeumgebung. Danke. Es wird dann mehr übersichtlicher


Maschbauer89

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2012, 11:40     Titel:
  Antworten mit Zitat      
Sorry, das ist hier das falsche Unterforum. Falls möglich, bitte verlegen.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.01.2012, 11:44     Titel:
  Antworten mit Zitat      
Hallo,

das Problem liegt in Zeile 8 deiner Funktion.
Wenn ich es richtig sehe, versuchst du ein Verzeichnis an FOPEN zu übergeben. Das müsste aber ein Dateiname sein.

Anstatt den Nutzer den Dateinamen im Command Window eingeben zu lassen, würde ich eine Nutzung von UIGETFILE vorschlagen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 23.01.2012, 11:57 Uhr von denny
Von Grafiken und Plots nach Programmierung
 
Maschbauer89

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2012, 13:39     Titel:
  Antworten mit Zitat      
Danke sehr Harald. Ich habe anscheinend gar nicht richtig kontrolliert. Damit hat es sich erledigt. Schönen Tag noch!
 
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.