|
HF-SCF |

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009a
|
 |
|
|
 |
|
Verfasst am: 02.11.2010, 12:19
Titel: Datei auslesen
|
 |
Hi,
hab mit der SuFu leider nichts gefunden, aber vielleicht kann mir jemand helfen. Ich habe eine txt Datei die wie folgt aufgebaut ist:
Zahl Zahl Buchstabe Buchstabe Wort
Wie kann ich nun matlab sagen, dass es mir auch die Buchstaben und wörter ausgiebt? Habe das hier,
funktioniert aber nicht richtig. Hat jemand einen Tipp?
Danke & gruß
HF
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 02.11.2010, 16:17
Titel: Re: Datei auslesen
|
 |
Hallo HF-SCF,
Zitat: |
funktioniert aber nicht richtig. |
Diese Formulierung ist in einem Forum nicht hilfreich. Viel besser ist es, wenn Du esakt beschreibst, was nicht funktioniert. Bitte poste die exakte Fehlermeldung und/oder den Unterschied zwischen Deinen Erwartungen und dem Ergebnis.
Gruß, Jan
|
|
|
HF-SCF |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009a
|
 |
|
|
 |
|
Verfasst am: 02.11.2010, 18:57
Titel:
|
 |
Hi,
danke für die Antwort und sorry, dass es nicht exakt war.
Sagen wir, es funktioniert halb
Er gibt die beiden Zahlen aus, die letzten drei Spaltenwerte(innerhalb einer Zeile) allerdings nicht.
"The argument for the %s format specifier must be of type char (a string). "
ist die Fehlermeldung. Nun steck ich in der Programmiersprache nicht so wirklich drin und versteh den Fehler auch nicht ganz.
Anscheinend erwartet er eine Zeichenfolge (Zahlen?) und kann das was kommt nicht interpretieren. Wie übersetz ich ihm dann das, dass er es auch richtig ausgibt?
Die Ausgabe soll dann so aussehen, wie das was in der Zeile steht (was ja auch mit den Zahlen klappt, nur die Buchstaben erzeugen den Fehler!)
Gruß
HF
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 02.11.2010, 19:34
Titel:
|
 |
Hallo HF-SCF,
Zitat: |
Er gibt die beiden Zahlen aus, die letzten drei Spaltenwerte(innerhalb einer Zeile) allerdings nicht. |
Wer gibt welche beiden Zahlen aus? Ich habe die Ausgabe der ersten beiden Zahlen doch in meinem Beispiel ganz weggelassen?!
Zitat: |
"The argument for the %s format specifier must be of type char (a string). " |
Soweit ich meinen Code überblicke, können als Argument nur Strings auftreten, weil Du dies ja per "ischar(band)" sichergestellt hast.
Möchtest Du die Orignal-Zeile ausgeben?
Ich galube es wäre hilfreich, wenn Du nochmal die aktuelle Version Deines Programms posten würdest, und ein relevantes Beispiel für den Inhalt der Zeilen (Variable "band").
Gruß, Jan
|
|
|
HF-SCF |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009a
|
 |
|
|
 |
|
Verfasst am: 03.11.2010, 10:19
Titel:
|
 |
Hi Jan,
also einen Teil konnte ich lösen. Die Buchstaben werden mit %c ausgegeben anstatt %s, da hab ich mich in der doc wohl verlesen.
Das Programm wird über das command window aufgerufen. Dorthin sollen auch die Werte zurückgegeben werden (falls das ich mich da unklar ausgedrückt hab mit "zurückgeben").
Also hier mal der gesamte Code:
Vielleicht noch eine Beispielzeile aus dem File aus dem ausgelesen wird:
2331 2490 w d irgendeinwort
Mit dem, was ich bisher habe gibt er folgendes aus wenn die Bedingung erfüllt ist
"2331 2490 w d i"
Nur das Wort fehl, auch wenn ich eingebe, wieviele Stellen er ausgeben soll z.Bsp. %20c. Kommt trotzdem immer nur der Anfangsbuchstabe. Vielleicht weißt du da noch was?
Gruß
HF
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 03.11.2010, 13:00
Titel:
|
 |
Hallo HF-SCF,
dann wiederhole ich noch mal meinen Vorschlag:
Du scheinst doch nur die beiden ersten Zahlen aus dem String "band" zu brauchen. Wenn Du danach doch den ganzen String "band" wieder ins Commandwindow schreibst, geht das auch direkt.
Das hatte ich aber bereits oben so ähnlich gepostet. Nur aus der Beschreibung der auftretenden Fehler bin ich nicht schlau geworden.
Gruß, Jan
|
|
|
HF-SCF |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009a
|
 |
|
|
 |
|
Verfasst am: 04.11.2010, 09:48
Titel:
|
 |
Leider brauche ich die ganze Zeile, mit den beiden Zahlen hätte ich keine Probleme gehabt, das hat ja bereits geklappt. Nur das Letzte Wort macht noch Probleme, weil es davon nur den ersten Buchstaben ausgibt und ich keine Ahnung hab, wo der Resgt versackt *g*.
Gruß
HF
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 04.11.2010, 14:31
Titel:
|
 |
Hallo HF-SCF!
Du möchtest die ganze Zeile ausgeben und Du hast die ganze Zeile als Variable zur Verfügung! Also musst Du die Zeile nicht erst zerpflücken (ausser um die ersten beiden Zahlen auszulesen), um sie dann wieder umständlich zusammen zu setzen.
Oder??
Hast Du meinen Programmvorschlag denn ausprobiert und wie unterscheidet sich das Ergebnis von Deinen Wünschen?
Dein Versuch:
liest halt wegen des %c Formats nur einzelne Buchstaben ein. Für einen String ist %s das richtige Format. Aber wie gesagt: Wenn Du sowieso die ganze Zeile ausgibst, muss sie gar nicht zerteilt werden.
Hattest Du meinen Vorschlag versucht SSCANF mit der Ausgabe von NextIndex aufzurufen?
Gruß, Jan
|
|
|
HF-SCF |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009a
|
 |
|
|
 |
|
Verfasst am: 05.11.2010, 15:49
Titel:
|
 |
Ja hab ich, aber da passiert leider garnichts.
Ich bin ja nicht der überprogrammierer (also es reicht gerade für das, was hier steht ), aber muss ich ihm nicht sagen was für ein Format jeder Eintrag innerhalb einer Zeile hat?
Vor allem, da ich ja den Eingabewert mit den ersten beiden Zahlen vergleichen will und nur wenn eine Übereinstimmung herrscht soll die ganze Zeile ausgegeben werden.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 06.11.2010, 01:24
Titel:
|
 |
Hallo HF-SCF,
Zitat: |
Ja hab ich, aber da passiert leider garnichts. |
Das halte ich für ein Gerücht. Ich bin fest überzeigt davon, das "etwas" passiert.
Wenn "es passiert nichts" bedeuten soll, dass es keine Ausgabe ins CommandWindow gibt, ist wohl diese Fallunterscheidung nicht ausreichen:
Zitat: |
aber muss ich ihm nicht sagen was für ein Format jeder Eintrag innerhalb einer Zeile hat? |
Nein. Wenn ich Deinen Code anschaue, sind doch nur die ersten beiden Zahlen einzulesen. Wenn die im gewünschten Bereich liegen, wird die ganze Zeile ins CommandWindow geschrieben. Was da nun hinter den ersten beiden Zahlen steht, ist dabei doch vollkommen egal --- zumindest in dem Code, den Du hier gepostet hast.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|