|
|
|
Zahl zwischen zwei Strings suchen |
|
| power_paul |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 22.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.03.2012, 10:57
Titel: Zahl zwischen zwei Strings suchen
|
 |
Hallo zusammen,
ich habe mal wieder eine Frage und wurde durch die Suche leider nicht fündig.
Ich habe eine cellarray und möchte in diesem gerne Zahlen finden. Das Problem ist, dass die Zahlen zwischen zwei Strings stehen.
Zum Beispiel: String1 Zahl String2. String1 und 2 können aber auch einzeln vorkommen. Bei der Zahl handelt es sich um ein- oder zweistellige Integer.
Welche Funktion könnte ich hierfür nutzen? Ich dachte an regexp?!
Danke für die Hilfe.
Gruß Paul
|
|
|
|
|
|
| Kevin |

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 18.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.03.2012, 11:27
Titel:
|
 |
Hallo Paul,
ich hab noch ein Verständnis-Problem mit deinen Angaben, deshalb ergeben sich zwei Möglichkeiten:
1. In einer Zelle steht entweder ein string oder eine Zahl
dann ist die Länge der Zelle unterschiedlich: Zahl == 1Element; String == mindestens 2 Elemente (char + NULL)
2. In einer Zelle steht ein String, der eine Zahl enthält, die aber ein subsring ist
dann hat du wieder zwei Möglichkeiten:
a) Die Zahl und der string sind durch ein Leerzeichen voneinander getrennt --> suche im String die ascii-Nummer 32 und du hast die Elementgrenzen
b) Die Zahl folgt direkt auf ein Zeichen
dann musst du im String nach Zeichen suchen deren ascii-Nummer kleiner als 58 und größer als 47 sind
Die Routine am Ende ist dann einfach nur eine Schleife mit ein paar Bedingungen
Gruß
Kevin
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
|
| power_paul |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 22.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2012, 03:30
Titel:
|
 |
Hi Kevin,
danke für deine Antwort.
Ich denke es trifft die von dir beschriebene Variante 2a am ehesten, aber ich glaube noch nicht ganz. Ich versuche es anders zu beschreiben. Ich habe einen String (Beispiel: "......Wert1 = 6 Wert2 = 8......"). Ich suche jetzt die 6 in dem String. Aber genau an der Stelle, an der auf "Wert1" "Wert2" folgt. Das Problem ist, dass Wert1 und Wert2 auch an anderen Stellen im String vorkommen können (Beispiel: "......Wert1 = 6 WertX = 9......"). Dann interessiert mich die 6 nicht.
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.03.2012, 10:28
Titel:
|
 |
Hallo power_paul,
Kannst Du bitte ein Beispiel in Matlab-Syntax angeben? dann könnten wir unsere Vorschläge auch selbst ausprobieren. Etwa:
Konkrete Beispiele sind immer (oft?) einfacher zu verstehen als eine Beschreibung also Text.
Gruß, Jan
|
|
|
|
| Kevin |

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 18.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2012, 11:59
Titel:
|
 |
Hallo Paul,
du hast jetzt nur eine zweite Bedingung drin --> wert1 und wert2 sind substrings und nur zwischen denen kann der gewünschte Wert stehen. Die Frage bei der Umsetzung ist nur ob es mehr wahre oder falsche Bedingungen für den Substring gibt, damit die runtime im Rahmen bleibt.
Aber ich finde Jan hat recht...der Fall ist sehr speziell. Kannst du mal die Datei, um die es geht Posten? Oder noch besser den Dateiaufbau.
Gruß
Kevin
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
|
| power_paul |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 22.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2012, 05:21
Titel:
|
 |
Hi,
also in der Datei siehts an der betreffenden Stelle so aus:
Match Num = 6
UserID = 7(Score=100)
UserID = 2(Score=92)
UserID = 3(Score=91)
UserID = 5(Score=91)
UserID = 6(Score=90)
UserID = 4(Score=84)
ich möchte jetzt gerne die Zahl 6 einlesen. Die steht wie gesagt zwischen "Match Num =" und "User ID". Die beiden Strings könne jedoch auch einzeln an anderer Stelle in der Datei. Aber an dieser Stelle möchte die 6 haben.
Ich habe es jetzt so gelöst, dass ich mit regexp nach "Match Num =" suche und dann gucke, ob maximal 5 Stellen später ein "U" vorkommt. Ist aber glaube ich nicht ganz sicher.
Gruß
|
|
|
|
| Kevin |

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 18.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2012, 17:43
Titel:
|
 |
Hallo,
die Möglichkeit geht, allerdings versteh ich nicht, warum du die Bedingung über die Anzahl der Zeichen setzt, und nicht einfach guckst ob der erste token in der Nächsten Zeile "UserID" ist. Dann wäre es sicher.
Gruß
Kevin
_________________
1000 Buchstaben? Warum nur 6?
|
|
|
|
|
|
|
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.
|
|