LabVIEWForum.de - Array nach Zahl durchsuchen

LabVIEWForum.de

Normale Version: Array nach Zahl durchsuchen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
<div align="left">
Hallo Forum!

Ich möchte ein Array von Zahlen nach Nullen durchsuchen und mir die zugehörigen Indizes, falls gefunden, anzeigen lassen. Ich hab mir da auch schon was einfallen lassen (siehe Anhang). Allerdings bekomm ich die Indizes im Ergebnis-Array teilweise mehrmals angezeigt...

Ich kann mir leider nicht erklären, warum. Hat jemand von Euch vielleicht eine Idee?

Gruß Danyo
</div>
<div align="left">Hallo, Danyo,

klar lieferte deine Suche falsche Ergebnisse, da du den N Elemente langen Array genau N-mal durchsuchst.

Anbei ein Screenshot eines funktionierenden VI's (wenn auch nicht sonderlich elegant)

[attachment=3549]

MfG, Jens

P.S.: Und hier noch eine 2. Variante als VI

[attachment=3550]</div>
Hi,

das hier funktioniert, geht aber sicher einfacher.

Gruß Markus

' schrieb:<div align="left">
Hallo Forum!

Ich möchte ein Array von Zahlen nach Nullen durchsuchen und mir die zugehörigen Indizes, falls gefunden, anzeigen lassen. Ich hab mir da auch schon was einfallen lassen (siehe Anhang). Allerdings bekomm ich die Indizes im Ergebnis-Array teilweise mehrmals angezeigt...

Ich kann mir leider nicht erklären, warum. Hat jemand von Euch vielleicht eine Idee?

Gruß Danyo
</div>
' schrieb:Hi,

das hier funktioniert, geht aber sicher einfacher.

Gruß Markus

<div align="left">Hallo, Markus,

wieso die umständliche Verwandlung der Zahlen in Strings in deinem Bsp??

Ansonsten ist es nämlich identisch mit meinem VI. Soviel zum Thema geht auch einfacher.

MfG, Jens</div>
Ja vielen Dank für eure Hilfe!

Gruß Danyo
Hallo!

Jetzt habe ich da auch mal was probiert. Blink
[attachment=3559]
Wie findet Ihr´s? Ist das Wandeln etc. Performancelastig?

Gruß!
Mir ist gerade aufgefallen, dass in meinem Beispiel der Index des letzten Elements nicht mit übernommen wird, wenn ich in diesem Fall als Konstante 2 eingebe. Wisst Ihr vielleicht, wie man das auf die Schnelle in den Griff kriegn kann?

Gruß Markus

' schrieb:Hi,

das hier funktioniert, geht aber sicher einfacher.

Gruß Markus
<div align="left">@Markus:

Wie schon gesagt, wieso die umständliche Umwandlung in String?

Dein Fehler liegt darin, dass dein erzeugter String die Form x,y,z und nicht x,y,z, hat. Beim letzten Durchlauf deiner While-Schleife wird dann nur z an deine "Match-Pattern" Funktion übergeben, die dann aber das gesuchte Komma-Pattern nicht mehr finden kann. Deshalb wird eine 0 als letztes Element nicht erkannt.
Workaround: Du musst noch ein Komma an den String vor Beginn der While-Schleife anfügen.

MfG, Jens</div>
Hallo,

ich weiß, dass das Problem war, dass kein Komma am Ende des Strings war und dass das Vi sehr umständlich war. Ich hatte schon mit "Concatenate String" ein Komma angefügt, aber das hat nicht geklappt. Darum habe ich ja nachgefragt. Wenn es bei Dir mit dem Komma klappt, könntest Du dann das VI evtl. posten?
Wenn nicht, ist es auch nicht so schlimm.

Gruß Markus

' schrieb:<div align="left">@Markus:

Wie schon gesagt, wieso die umständliche Umwandlung in String?

Dein Fehler liegt darin, dass dein erzeugter String die Form x,y,z und nicht x,y,z, hat. Beim letzten Durchlauf deiner While-Schleife wird dann nur z an deine "Match-Pattern" Funktion übergeben, die dann aber das gesuchte Komma-Pattern nicht mehr finden kann. Deshalb wird eine 0 als letztes Element nicht erkannt.
Workaround: Du musst noch ein Komma an den String vor Beginn der While-Schleife anfügen.

MfG, Jens</div>
' schrieb:Hallo,

ich weiß, dass das Problem war, dass kein Komma am Ende des Strings war und dass das Vi sehr umständlich war. Ich hatte schon mit "Concatenate String" ein Komma angefügt, aber das hat nicht geklappt. Darum habe ich ja nachgefragt. Wenn es bei Dir mit dem Komma klappt, könntest Du dann das VI evtl. posten?
Wenn nicht, ist es auch nicht so schlimm.

Gruß Markus

<div align="left">Hallo, Markus,

habe mir nocheinmal genauer dein VI angeschaut und noch ein Problem festgestellt. Die Funktion "Array To Spreadsheet String" fügt am Ende des Strings ein Carriage Return und ein Linefeed hinzu. Das kannst du sehen, indem du einfach mal den String auf dem Frontpanel anzeigst und dann auf die "Codes" Darstellung gehst. Deshalb funktioniert auch das einfache Anhängen eines Kommas nicht. Muß leider zugeben, dass ich das zuerst auch nicht ausprobiert habe.

Ich glaube, jetzt sind aber wirklich alle Fehler beseitigt.

MfG, Jens</div>
Seiten: 1 2
Referenz-URLs