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!
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.
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
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
[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?
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
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
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.
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
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
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
09.10.2006, 14:16 (Dieser Beitrag wurde zuletzt bearbeitet: 09.10.2006 14:18 von Achim.)
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.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
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.
ich weiss nicht ob du noch Hilfe brauchst...
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