LabVIEWForum.de - Datei mit # Trennzeichen in Array einlesen

LabVIEWForum.de

Normale Version: Datei mit # Trennzeichen in Array einlesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
<div align="left">Hi Leute,

ich habe eine Datei mit # als Trennzeichen. Sieht etwa so aus:

wert1#test
wert2#test

Diese möchte ich in ein mehrdimensionales Array einlesen, so das der erste Wert dim1 ist und der zweite Wert dim2. Ich habe das vi "Read from Spreadsheet" gewählt. Jedoch finde ich keine Möglichkeit den Inhalt des Files einem dynamischen Array zu übergeben. Dynamisch deshalb, weil ich weder die Anzahl der Spalten kenne, noch die Anzahl der Zeilen.

Könnt ihr mir helfen?

Danke im voraus.

Grüsse
xthing</div>
Hi,

das geht einfach so:

[attachment=3565]

In der Datei steht z.B.

10#20
30#40

dann sieht das Ergebnis so aus:

[attachment=3566]


Wenn statt "20" und "40" ein Text steht, kommt im Array dann ne "0" raus, weil der Text nicht als Zahl interpretiert werden kann, wie es das VI erwartet...

Gruss
Achim
' schrieb:Hi,

das geht einfach so:

[attachment=29641:attachment]

In der Datei steht z.B.

10#20
30#40

dann sieht das Ergebnis so aus:

[attachment=29642:attachment]
Wenn statt "20" und "40" ein Text steht, kommt im Array dann ne "0" raus, weil der Text nicht als Zahl interpretiert werden kann, wie es das VI erwartet...

Gruss
Achim

Hi Achim,

danke für Deine Hilfe. Aber was ist das für ein double Objekt unter all rows?

Danke noch mal.

Grüsse
xthing
Hi,

meinst du das Terminal für das 2D-Array? Das hab ich einfach mit "Create Indicator" am "all rows"-Anschluss erzeugt, das dazugehörende FrontPanel-Element ist der graue Screenshot...

Gruss
Achim
' schrieb:Hi,

meinst du das Terminal für das 2D-Array? Das hab ich einfach mit "Create Indicator" am "all rows"-Anschluss erzeugt, das dazugehörende FrontPanel-Element ist der graue Screenshot...

Gruss
Achim

Danke, das habe ich nachvollzogen. Das Problem ist, dass ich das Array nur für die interne Verarbeitung benötige, also ohne FrontPanel. Ich muss z. B. einen Index ermitteln können usw. Dann möchte ich den Teil des Inhaltes an eine Combobox übergeben usw.

Wie kann ich es einem Array übergeben, welches ohne FrontPanel arbeitet.

Danke noch mal.

Grüsse
xthing
Hi,

ich glaube, du hast da was missverstanden...das Array arbeitet quasi immer ohne Element auf dem FP, das ist nur ne Anzeige! Wenn du Elemente aus dem Array extrahieren willst, mußt du mit der Funktion "Index Array" aus der Array-Palette ne Zeile (row) oder Spalte (column) auswählen. Du platziert dazu das VI von der Palette im Blockdiagramm und verbindest den Ausgang der "Read"-Funktion mit dessen Eingang...und dessen Ausgang (Ergebnis) kannst du dann weiterverarbeiten, z.B. an ne Combobox übergeben. Dies kannst du dann mit nem PropertyNode machen (Elemente "Strings" oder "Strings and Values"

Noch Fragen?

Gruss
Achim
' schrieb:Hi,

ich glaube, du hast da was missverstanden...das Array arbeitet quasi immer ohne Element auf dem FP, das ist nur ne Anzeige! Wenn du Elemente aus dem Array extrahieren willst, mußt du mit der Funktion "Index Array" aus der Array-Palette ne Zeile (row) oder Spalte (column) auswählen. Du platziert dazu das VI von der Palette im Blockdiagramm und verbindest den Ausgang der "Read"-Funktion mit dessen Eingang...und dessen Ausgang (Ergebnis) kannst du dann weiterverarbeiten, z.B. an ne Combobox übergeben. Dies kannst du dann mit nem PropertyNode machen (Elemente "Strings" oder "Strings and Values"

Noch Fragen?

Gruss
Achim

Danke jetzt klappt es. Eine Frage hab ich aber doch noch. Wie mache ich das mit Strings. An dem Array finde ich keine Möglichkeit den Representation Typ in String zu ändern.

Kannst Du mir das noch sagen.

Grüsse
xthing
Hi,

du könntest dir dein eigenes "Read" bauen (und umbenennen!!!) und darin den Typ definieren. Was anderes wird in diesem VI nämlich auch nicht gemacht. Das kannst du sehen, wenn du das "Read" mal aufmachst: Da wird am VI "Spreadsheed String to Array" links der "type" definiert!

Einfacher ist es aber, nach dem originalen "Read" ne String-Konvertierungs-Funktion (z.B. Number to fractional string) zu verwenden. Diese findest du in der Palette String >> String/Number conversion. Diese Funktionen (wie übrigens die meisten LV-VIs) sind polymorph, d.h. du kannst verschiedenste Datentypen anschließen, der jeweilige Eingang passt sich deinem Typ dann an! Konkret musst du also den 2D-Double-Ausgang an den Eingang des Konvertierungs-VIs anschließen, dann kriegst du ein 2D-String Array raus! So wird zwar 2x gewandelt (was länger dauert), aber du brauchst kein eigenes VI zu erstellen...

so long...
A.
Hi,

ich habe in dem Spreedsheet vi, das entsprechende Format angegeben. Also %s, funktioniert aber leider nicht. Kann mir jemand einen Tipp geben, wie ich aus einer Datei, Strings in ein Array einlesen kann.

Danke noch mal.

Grüsse
xthing
Hallo xthing,

ich weiss nicht ob du noch Hilfe brauchst...Blush
Hier anbei findest was Dich vielleicht intressieren könnte.
Ich das VI "Read From Spreadsheet File" geöffnet und umgeändert (natürlich unter anderen namen gespeichert" . Bei dem Anschluss Arraytyp von "Tabellenstring nach Array" habe einfach ein Array-konstante (mit String-Konstante versehen) angehängt. Bei dem Trennzeichen kannst du beliebig machen, meistens ist es Tabulator-Zeichen!!!

Falls Du noch Hilfe brauchst kannst du gerne melden

Grüsse

Achiles
Referenz-URLs