INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Stringzerlegung in Array/Tabelle



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

14.11.2007, 22:39 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2007 14:07 von jg.)
Beitrag #1

Guest
Unregistered


 







Stringzerlegung in Array/Tabelle
Hallo,

nachdem der letzte Thementitel etwas irreführend war, versuche ich es nochmal (trotzdem danke an Achim).

Ich bekomme eine txt-Datei welche Messwerte von (inzwischen) 12 Sensoren enthält. Leider ist ddie From in der die Messwerte dort angeordnet sind gänzlich unpraktisch. Es werden dabei immer nur Daten von den Sensoren gesendet, die an waren. Das heißt wenn nur ein Sensor an war, wird auch nur für einen Daten geschickt. Es können aber von bis zu 10 gleichzeitig Daten geschickt werden.

Die Datei enthält einen Header, in dem die Dateibezeichnung, einige andere Infos und die Information welche Sensoren an waren, übermittelt werden. Die letzten Zeichen des Headers sind also zum Beispiel 101000000000, das heißt die Sensoren 1 und 3 waren an und für diese sind in der Datei Messwerte enthalten. Leider ist die Länge des Headers veränderlich (byte-Anzahl) aber die letzten 12 Zeichen sind jeweils die für die Aussage über die aktiven Sensoren.

Nach einem "CR LF" (End of Line; HEX "0D0A") kommen zeilenweise die eigentlichen Messwerte.
Eine Zeile ist wie im ersten Bild aufgebaut:
erst kommt ein Counter (1byte):
00
dann kommt eine Zeit in Sekunden (4byte):
0000 0000
dann kommen die Messwerte des 1. eingeschalteten Sensors (2xSpannung (2byte), 2xStrom (2byte), 1xMessbereich (1byte) = 9byte pro Sensor)
F200 FF0F 1404 0000 00
dann dasselbe Spiel nochmal für den 2. sendenden Sensor. Dies kann sich dann also für bis zu 10 Sensoren wiederholen (es können nur 10 der 12 Sensoren gleichzeitig senden).
Nach so einer Messwertzeile kommt ein Seperator "LF" (HEX "0A").
Danach wiederholt sich derselbe Spaß für den nächsten Counterstand, also die nächste Zeit.
Im Prinzip ist der Messwertteil also aufgebaut, wie im 2. Bild beispielhaft für 2 sendende Sensoren aufgebaut.

Nach den Messwerten kommt noch ein "CR LF" ( HEX "0D0A"). Danach kommt noch die Footline, diese spielt aber keine große Rolle.

Ziel:
Am Ende soll eine Tabelle (Array) stehen, in der die Messwerte dargestellt und zeilenweise aufgespalten sind.

Dabei hab ich mehrere Probleme:

für Sensoren die keine Daten geschickt haben, sollen Nullen in die jeweiligen Felder für die 2 Spannungen, 2 Ströme und 1 Messbereichswert geschrieben werden.
Schließt also die Header-Zeile wie oben mit 101000000000, dann kommen für eine Messwertzeile erst Counter und Zeit, dann die 5 Werte des ersten Sensors, dann 5 Nullen, dann die 5 Werte des dritten Sensors und dann jeweils 5 Nullen für die restlichen 9 Sensoren.
Ich hätte also am Ende gerne ein Array das so aussieht wie die im Excel-File (natürlich nur die Dezimalzeilen).

Die nächste Messwertzeile soll dann in eine neue Zeile des Arrays geschrieben werden.

Ich habe mich, mit Achim Hilfe, schon etwas vorgearbeitet. Leider funktioniert die Aufspaltung der Messwerte der einzelnen Sensoren noch nicht richtig.

Wie schaffe ich es in der FOR-Schleife für eine 1 am jeweiligen Sensor (z.B. erster Sensor wenn im Header 101000000000) die Werte aus dem String zu verarbeiten und für eine 0 5 Nullen in die Tabelle zu schreiben ? Und dann auch für eine Messwertzeile hintereinander ? In meinem VI werden irgendwie nur einmal die 5 Nullen aus dem FALSE-Zweig der Case-Struktur geschrieben. Dadurch stimmt dann natürlich auch der Rest der Tabelle nicht mehr.

So, ich hoffe das war nicht zu verwirrend. Wenn doch, dann würde ich mich freuen jede Frage zu beantworten.

Ich würde mich über jede Hilfe sehr freuen.
Mfg Karl-Heinz

P.S. hab grad gesehen, kann keine Excel-Files hochladen; Tabelle ist im RAR-Archiv

Edit: Achso, Beispiel-File ist im VI als Default gespeichert

(VI LV 8.0)


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  Array_Erzeugung_1_.vi (Größe: 33,03 KB / Downloads: 223)

Sonstige .vi  Aufspalten_1_Sensor.vi (Größe: 12,68 KB / Downloads: 202)

Sonstige .rar  Tabellenlayout.rar (Größe: 2,61 KB / Downloads: 235)
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Array in String Tabelle Lou_ders 3 4.841 19.10.2017 15:10
Letzter Beitrag: THL
  AscII - Tabelle als Array Sven x 4 5.802 18.11.2014 11:44
Letzter Beitrag: Lucki
  String - Array mit .csv Tabelle vergleichen schafkopf 1 4.219 05.07.2012 14:55
Letzter Beitrag: GerdW
  Tabelle aus C-Headerdatei als konstantes Array einfügen nemesismf 2 4.799 01.09.2011 07:14
Letzter Beitrag: Y-P
  Listenfeld, Tabelle, Array stromflo 2 7.404 15.12.2010 13:48
Letzter Beitrag: Yantit
  Tabelle (Array) bearbeiten jclstefan 13 10.330 22.06.2010 14:22
Letzter Beitrag: jclstefan

Gehe zu: