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

txt lesen

 

tnden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 12:35     Titel: txt lesen
  Antworten mit Zitat      
hallo
ich möchte einen datei bei bestimmte Zeile lesen,die mit keywort bound anfängt.Da möchte ich nur Wert von Bound lesen.


Code:

while ~feof(fid) && ~strcmp(line, Keyword)
       line = fgetl(fid);
end

line = fgetl(fid)
res.bound =line(10:12)

wo ist meine fehler??
LG


_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 30.08.2011, 13:09     Titel:
  Antworten mit Zitat      
Hallo tnden,
was ist denn mit dem Code? Was funktioniert nicht? Kommt eine Fehlermeldung? Bitte das Fehlerbild präzise beschreiben.

Ich tippe mal drauf, dass er nicht die Zeile findet.
Das wird am strcmp liegen. Dieser vergleicht beide strings auf völlige Übereinstimmung. Um nur den Anfang einer Zeile mit einem Keyword zu vergleichen, wirst du regexp nutzen müssen.
Code:

strcmp('Hallo', 'Ha')
ans = 0

regexp('Hallo', 'Ha')
ans = 1
 

_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
tnden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 13:15     Titel:
  Antworten mit Zitat      
erst mal danke für deine Hilfe..
meine Header Datei ist gross und die gesuchte keywort ist in der mitte.
irgend wie wenn ich code aufrufe ,wartet er nur und tut nichts.
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 13:27     Titel:
  Antworten mit Zitat      
Nachdem du die passende Zeile gefunden hast
(wie beschrieben mit regexp), liest du noch eine neue ein.
und was meinst du mit tut nichts?

Steht da die ganze zeit busy? Kommt ne Fehlermeldung?
 
tnden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 13:32     Titel:
  Antworten mit Zitat      
Gast1 hat Folgendes geschrieben:
Nachdem du die passende Zeile gefunden hast
(wie beschrieben mit regexp), liest du noch eine neue ein.
und was meinst du mit tut nichts?

Steht da die ganze zeit busy? Kommt ne Fehlermeldung?


steht ganze zeit busy.
Nachdem passende Zeile möchte ich 3 zeilen hintereinander lesen.dann beenden.
Wie wärst mit textscan?
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 13:42     Titel:
  Antworten mit Zitat      
Dann bitte nochmal den Code (eventuell ein paar Zeilen mehr?) posten,
es klingt so, als ob du irgendwo in der while Schleife hängen bleibst.
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.08.2011, 13:49     Titel:
  Antworten mit Zitat      
Code:
while ~feof(fid) && ~strcmp(line, Keyword)


Weil diese Bedingung hier wohl nie zutrifft, da beide nicht erfüllt werden.
Besser wäre wohl ein oder statt dem und.
Private Nachricht senden Benutzer-Profile anzeigen
 
tnden

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 13:52     Titel:
  Antworten mit Zitat      
Gast1 hat Folgendes geschrieben:
Dann bitte nochmal den Code (eventuell ein paar Zeilen mehr?) posten,
es klingt so, als ob du irgendwo in der while Schleife hängen bleibst.

ich habe ein besseres weg gefunden und sogar
Code:


fline=fgetl(fid);
while ~feof(fid)
    if strfind(fline,'bound')
       
bound =fline(9:12);

fline = fgetl(fid);
lpl = fline(9:12);

fline = fgetl(fid);
Len = fline(9:12);
       
 
    end
    fline=fgetl(fid);

end

 

so funktioniert jetzt.
findest du den code ok. oder hast verbesserungsmöglichkeiten??
danke
 
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.