LabVIEWForum.de
In String suchen - Leerzeichen akzeptieren? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: In String suchen - Leerzeichen akzeptieren? (/Thread-In-String-suchen-Leerzeichen-akzeptieren)



In String suchen - Leerzeichen akzeptieren? - phylin - 12.01.2012 19:31

Hi,

ich will einen längeren Header mit "in String formatieren" basteln und ihn mit "In String suchen" wieder auseinandernehmen.

Jetzt hab ich ein Problem:
Bei "in String formatieren" kann ich für %s einen string mit leerzeichen angeben z.B. "mein Kommentar".
ABER bei "in String suchen" kann er diesen String mit Leerzeichen nicht mehr auslesen. Scheinbar sucht er in diesem Fall nur nach einem String, der bei einem leerzeichen endet. Statt "mein Kommentar" auszugeben, gibt er also nur "mein" aus.

Bei meinem mehrzeiligen Header führt das dann sogar zu einer Fehlermeldung. z.B. bei sowas:
"Header:
Kommentar: %s
erste Zahl: %f
Header_ende"

Gibt es da einen workaround für? z.B. das man dem %s sagt es soll alles in Anführungsstrichen ("mein Kommentar") als string betrachten. Oder bin ich gezwungen auf andere string funktionen zurückzugreifen? Wäre schade drum.


RE: In String suchen - Leerzeichen akzeptieren? - GerdW - 12.01.2012 19:37

Hi phylin,

wenn du Leerzeichen sowohl als Trennzeichen zwischen Keywords und Daten (bei dir ": ") als auch innerhalb der Daten zulassen willst, musst du wohl oder übel anders vorgehen...

Ich würde:
- als erstes nur den Header ausschneiden (bzw. nur die Daten zwischen Header-Start- und Header-Ende-Kennung)
- dann alles zeilenweise zerlegen - du hast anscheinend immer nur ein Keyword pro Zeile und nur eine Zeile pro Keyword
- dann jede Zeile am ": " trennen (mittels Stringsuche) und alles nach dem Trennzeichen als Daten interpretieren...

Nur mal so ein Gedanke... Smile


RE: In String suchen - Leerzeichen akzeptieren? - phylin - 12.01.2012 19:39

Toll. Da sucht man im internet rum, findet nichts dazu. Erstellt dann extra nen Thema und findet direkt danach bei google doch noch die Lösung.... Und ich sehe gerade auch, dass es in der Hilfe steht, obwohl ich eigentlich genau den Part durchgelesen hab, dachte ich jedenfalls.

Falls wen die Lösung interessiert:
statt %s benutzt man %[^\n] oder ähnliches. Er liest dann alles aus bis zum ersten auftreten von \n.
Man könnte es also auch mit %[^,] machen, damit er bis zum nächsten Komma liest.

edit:
@GerdW:
genau sowas hat ich vorher gebastelt. hab den Header in ein string array zerlegt und per schleife einfach die Header-"zeilentitel" wie "kommentar:" entfernt. Bis ich per zufall im inet gefunden habe, wie effektiv man doch dieses scan string ding einsetzen kann.