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

Datei Zeilenweise einlesen

 

jan_lde
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2015, 18:29     Titel: Datei Zeilenweise einlesen
  Antworten mit Zitat      
Hallo liebe Leute,

nachdem ich mich seit Stunden mit einem furchtbar trivialen Problem aufgehalten habe und mich fast schäme, dass Forum zu bemühen, frage ich jetzt dennoch:

Wie kann man eine Datei Zeilenweise einlesen? Die Datei besteht aus untereinander stehenden Blöcken, die jeweils einen eigenen Header besitzen. Wenn ich jede Zeile erstmal in einer eigenen Variablen hab, kann ich die auswerten und damit weiter machen. Nur weigert sich Octave beharrlich, das zu tun.

Mit
Code:
while (!feof (filename) bla = fgetl(filename) endwhile)  
wird immer nur die letzte Zeile gespeichert, was ja auch klar ist. Nur weiß ich nicht, wie ich das beheben kann. Ich hab schon alle möglichen Varianten mit Laufvariablen versucht, dabei regnete es stets nur Fehlermeldungen.

Vielen Dank schonmal für Antworten!
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 15.06.2015, 19:52     Titel:
  Antworten mit Zitat      
also ich kenn mich jetzt nicht in octave aus aber wenn du jede zeile speichern willst musst du da auch einen index in bla mitlaufen lassen oder ihn immer hinten anhängen etc. ich weis nicht wie octave code geht aber ich poste mal was um zu verdeutlichen was ich meine
Code:
while (!feof (filename) bla = [bla;fgetl(filename)] endwhile)  

oder sowas
Code:
while (!feof (filename)
 bla{k} = fgetl(filename)
k=k+1; endwhile)

wie gesagt das wird so nicht laufen denk ich mal aber vieleicht kannst du es ja in octave implementieren.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
jan_lde
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2015, 07:18     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
also ich kenn mich jetzt nicht in octave aus aber wenn du jede zeile speichern willst musst du da auch einen index in bla mitlaufen lassen oder ihn immer hinten anhängen etc. ich weis nicht wie octave code geht aber ich poste mal was um zu verdeutlichen was ich meine
Code:
while (!feof (filename) bla = [bla;fgetl(filename)] endwhile)  

oder sowas
Code:
while (!feof (filename)
 bla{k} = fgetl(filename)
k=k+1; endwhile)

wie gesagt das wird so nicht laufen denk ich mal aber vieleicht kannst du es ja in octave implementieren.


Genau darum geht es ja. WIE wird sowas in Octave implementiert. Das man es so macht war mir ja auch klar.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 16.06.2015, 09:01     Titel:
  Antworten mit Zitat      
Zitat:
Das man es so macht war mir ja auch klar.

das geht leider aus deinem post nicht hervor
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
jan_lde
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2015, 10:22     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
Zitat:
Das man es so macht war mir ja auch klar.

das geht leider aus deinem post nicht hervor


jan_lde hat Folgendes geschrieben:
Ich hab schon alle möglichen Varianten mit Laufvariablen versucht, dabei regnete es stets nur Fehlermeldungen.


Sorry, ich hätte das genauer formulieren sollen, da hast du Recht.
Private Nachricht senden Benutzer-Profile anzeigen
 
jan_lde
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2015, 08:45     Titel:
  Antworten mit Zitat      
Nach weiterer Sucherei konnte ich eine Lösung basteln, die ich dem Forum nicht vorenthalten will. Falls es Verbesserungsvorschläge gibt, dann haltet euch bitte nicht zurück.

Hier der Vorschlag:

Code:

filename = "dateiname";
fid = fopen(filename,'r');
  if (fid < 0)
     printf('Error:could not open file\n')
  else
  line =[];
   while !feof(fid)
      line = [line; fgetl(fid)];
   end;
        fclose(fid)
  end;
 


Allerdings bekomme ich eine Warnung:

Code:
warning: implicit conversion from numeric to char
warning: called from
    * at line 9 column 10
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 - 2024 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.