LabVIEWForum.de
Format String um String aufzuteilen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Format String um String aufzuteilen (/Thread-Format-String-um-String-aufzuteilen)



Format String um String aufzuteilen - Abrow - 21.11.2018 15:24

Hallo Leute,

ich versuche mich derzeit auch mit LabView.
Ich habe eine automatisch generierte html Datei, in der ich ein paar Werte ändern möchte.
Aus der Datei bekomme ich u.a. das hier (einzeilig):
Code:
<td>1.0</td><td>1.0</td></tr><tr><td><b>Name / Department</b></td><td></td><td></td></tr><tr><td><b>Signature</b></td><td></td><td></td></tr><tr><td><b>Date</b></td><td></td><td></td>

Mit dem VI In String suchen möchte ich nun die Tabellen auslesen, den Wert anzeigen und ggf. ändern.
Dazu habe ich als Format-String folgendes angegeben:
Code:
<td>%s</td><td>%s</td></tr><tr><td><b>Name / Department</b></td><td>%s</td><td>%s</td></tr><tr><td><b>Signature</b></td>%s<td></td><td>%s</td></tr><tr><td><b>Date</b></td><td>%s</td><td>%s</td>

Das sieht so aus:
[attachment=59574]

Allerdings kommt dann diese Fehlermeldung:
[attachment=59575]

Die Formatbezeichner habe ich bisher noch nicht so ganz durchschaut.
Kann mir einer sagen der Format-String aussehen muss, um die Werte zwischen <td> und </td> auslesen zu können? Die Werte können auch leer sein.
Kann es sein, dass das erste %s den String bis zum nächsten Leerzeichen liest und nicht bis zum nächsten </td>?

Danke schonmal für die Hilfe


RE: Format String um String aufzuteilen - GerdW - 21.11.2018 16:15

Hallo Abrow,

herzlich willkommen im Forum!

Das Problem ist: "%s" nimmt alles bis zum nächsten Whitespace!
Du erwartest: "<td>1.0</td>" mit "<td>%s</td>" durchsuchen ergibt "1.0".
Du bekommst: "<td>1.0</td>" mit "<td>%s</td>" durchsuchen ergibt "1.0</td>".

Tipp1: vorher den String in ein Array aus Tabellenelemente "<td>xyz</td>" zerlegen, dann jedes Element einzeln auswerten…
Tipp2: falls die Stringlänge der Daten in den Tabellenelementen bekannt und fest ist, könntest du noch "%3s" (z.B. für "1.0") verwenden…


RE: Format String um String aufzuteilen - Lucki - 21.11.2018 19:43

So ginge es aber auch:
[attachment=59579]


RE: Format String um String aufzuteilen - Abrow - 22.11.2018 09:35

Perfekt, vielen Dank. So funktioniert es. Smile
Aus Interesse trotzdem die Frage: Gibt es einen Formatbezeichner, mit dem ich den Wert zwischen <td> und </td> mit unbekannter Länge auslesen kann?


RE: Format String um String aufzuteilen - GerdW - 22.11.2018 09:49

Hallo Abrow,

nein.
Dafür musst du in der einen oder anderen Weise RegEx-Ausdrücke verwenden. (MatchPattern macht das letztendlich auch…)


RE: Format String um String aufzuteilen - Abrow - 22.11.2018 11:24

Äm ... ich denke das nein reicht mir vorerst als Antwort Big Grin
Da kann ich natürlich lange probieren.
Danke euch, Leute


RE: Format String um String aufzuteilen - Lucki - 23.11.2018 09:18

Es gibt unter DateiIO/XML den "XML-Parser". Davon habe ich eigentlich keine Ahnung, womöglich liege ich jetzt völlig falsch, bitte korrigiert mich dann. Aber vielleicht kann man den auch dazu verwenden, aus einer HTML-Datei bestimmte Informationen herauszuziehen.