LabVIEWForum.de
Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Textfile Zeile unterschiedl. Länge in Bytearray umwandeln (/Thread-Textfile-Zeile-unterschiedl-Laenge-in-Bytearray-umwandeln)



Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - bartinivva14 - 01.10.2014 20:33

[attachment=50954][attachment=50955][attachment=50956][attachment=50957]

Hallo zusammen,

ich stehe gerade beim Versuch Hex-Werte aus einem File einzulesen und Zeilenweise als 1D- ByteArray an Hardware weiterzugeben auf dem Schlauch.
Es ist ein Konfig-File mit dem I2C Register gesetzt werden. Die ersten zwei Werte sind die 16bit Adresse, anschließend kommen Werte unterschiedlicher Länge

Das Konfig-File im Textformat liegen in folgendem Format vor:

02 A3 00
00 1E 00 00
00 26 00 00
00 2D 12
00 25 FF
00 96 00 54
00 11 30
00 1C 32
00 22 00 77
00 2D 10
00 B8 00 00 00 28
00 22 00 77
00 15 07

Probleme bereitet mir bei meiner jetzigen Lösung das automatische auffüllen des Arrays mit Nullen entsprechend der längsten Zeile.
Die Werte werden also so weitergegeben:

02 A3 00 00 00 00
00 1E 00 00 00 00
00 26 00 00 00 00
00 2D 12 00 00 00
00 25 FF 00 00 00
00 96 00 54 00 00
00 11 30 00 00 00
00 1C 32 00 00 00
00 22 00 77 00 00
00 2D 10 00 00 00
00 B8 00 00 00 28
00 22 00 77 00 00
00 15 07 00 00 00

Da ich hier I2C Register mit Werten befülle ist die Ausgabe der aufgefüllten Nullen ungeschickt.

Die Anforderungen sind also:

- Die Zeilen nacheinander als Bytearray weiterzugeben und die ursprüngliche Länge beibehalten

- Die Reihenfolge der Zeilen steht nicht fest, da die Möglichkeiten zur Konfiguration flexibel sein müssen.
Man weiß also nicht wann 3 Byte kommen und wann 4 oder 6 Byte.

- Nullen die zu den Werten gehören solen natürlich nicht gelöscht werden

-Die momentane Tabulatortrennung im Textfile ist nicht zwangsläufig nötig, dies war nur der erste Versuch mit übersichtlicher Darstellung.
Eine Lösung ohne Tabs ist auch ok.

Angehängt das VI in Labviewversion 2014 und 8.0
sowie zwei Screenshots

Vielen Dank für eure Hilfe,

Jörg


RE: Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - jg - 01.10.2014 20:51

So z.B.:
[attachment=50959]
Gruß, Jens


RE: Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - GerdW - 01.10.2014 20:53

Hallo Jörg,

Arrays sind in LabVIEW immer "rechteckig", d.h. alle Zeilen haben gleich viele Spalten! Du kannst also nicht einmal Zeilen mit 3 Elementen haben und dann welche mit 5…

Lösung:
Datei zeilenweise einlesen und/oder nur zeilenweise auswerten!


RE: Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - Lucki - 01.10.2014 21:04

Es geht, wenn Du jede Zeile in einen Cluster verpackst. Als nicht "2D-Array", sondern "1D-Array of Cluster", wobei die Cluster als Element jeweils einen Zeilenarray enthalten. Dann können die Zeilen alle unterschiedliche Längen haben. Rein Äußerlich, wenn man die Cluster transparent macht, sieht das dann genau so aus wie ein "2D-Array mit unterschiedlichen Zeilenlängen"
Ein andere Möglichkeit ist, für die Darstellung der Zahlen eine 2D-Texttabelle oder ein 2D-Textarray zu verwenden. Echte Nullen bleiben dann Nullen, die angehängen unerwünschten Elemente sind hingegen unsichtbare Leerzeichen.


RE: Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - jg - 01.10.2014 21:12

(01.10.2014 21:04 )Lucki schrieb:  Es geht, wenn Du jede Zeile in einen Cluster verpackst.
vgl. Beitrag #2. Big Grin


RE: Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - Lucki - 01.10.2014 23:04

(01.10.2014 21:12 )jg schrieb:  vgl. Beitrag #2. Big Grin
Antwort 1:
Vgl. Beitrag #2 hier
Oder Antwort 2:
Ja, ich bin langsam. Als ich anfing zu schreiben, gab es Null Antworten, als ich das abschickte, hattet ihr beiden Platzhirsche wie gewöhnlich schon die Vorderplätze belegt. Man könnte ja mit einem sofort geposteten "Moment bitte..." den Platz belegen. (So ähnlich wie die Deutschen auf Mallorca, die am Morgen vor dem Frühstück mit einem Handtuch sich ihren Strandplatz reservieren). Aber Scheiß drauf, es ist mir egal.


RE: Textfile Zeile unterschiedl. Länge in Bytearray umwandeln - bartinivva14 - 02.10.2014 11:50

Hallo zusammen,

vielen Dank für die schnelle Hilfe.
Die Lösung von Jens erledigt alles zur vollsten Zufriedenheit.

Grüße Jörg