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 

Dieses Thema hat akzeptierte Lösungen:

Array durchsuchen



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!

21.09.2020, 11:17
Beitrag #1

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Dec 2015

LV 2016
2016
DE


Deutschland
Array durchsuchen
Guten Morgen,

ich habe ein Problemchen.

Ich lese eine Wertetabelle aus.
Spalte A = Testobjekt
Spalte B = Testwerte

Testobejekte können mehrmals mit unterschiedlichen Ergebnissen auftauchen.

Beispiel:

A 1; 2; 3; 4; 5; 1; 2; 3; 4; 7; 1;
B 10; 20; 30; 40; 50; 12; 21; 29; 30; 24; 29;

Array durchsuchen geht ja nur bis zum ersten Treffer. Wie bekomme ich es jetzt hin alle Werte von einem Typ in ein array zu sammeln?
In dem Fall also zum Beispiel: alles Testergebnisse zum Testtyp1

Ich vermute es hängt mit einer For Schleife zusammen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.09.2020, 11:21 (Dieser Beitrag wurde zuletzt bearbeitet: 21.09.2020 11:22 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 16.616
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Array durchsuchen
Hallo hulk,

Zitat:Ich vermute es hängt mit einer For Schleife zusammen
Ja, eine FOR-Loop ist die effektivste Möglichkeit, ein Array Element für Element abzuarbeiten: alle Treffer ein einem (Ausgabe-)Array sammeln…

Du könntest aber auch eine While-Loop nehmen und bei Search1DArray vorgeben, von wo die Suche aus starten soll! Wenn du weißt, das Element "n" ein Treffer war, dann könntest mit Element "n+1" die Suche fortsetzen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2020, 12:57
Beitrag #3

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Dec 2015

LV 2016
2016
DE


Deutschland
RE: Array durchsuchen
Ich hab da mal was gebastelt. Es funktioniert erstmal.
Mit einer FOR Schleife kam ich leider nicht zurecht.
-
Wenn ich mein Element suche, gibt es da die Möglichkeit nach einem Teilstring zu suchen?
"Muster suchen" funktioniert irgendwie nicht mit einem Array.


Angehängte Datei(en)
16.0 .vi  Wertermittlung io.vi (Größe: 23,3 KB / Downloads: 17)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2020, 13:04 (Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2020 13:12 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 16.616
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Array durchsuchen
Hallo hulk,

leider hast du die Testdaten vergessen.
Außerdem ging es bei der ersten Frage um Zahlenwerte - und nun verarbeitest du Strings?

Etwas vereinfacht:
   

Zitat:Wenn ich mein Element suche, gibt es da die Möglichkeit nach einem Teilstring zu suchen?
Ja klar: autoindizierende FOR-Loop und dann jedes Element mittels MatchPattern (o.ä.) testen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2020, 13:42
Beitrag #5

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Dec 2015

LV 2016
2016
DE


Deutschland
RE: Array durchsuchen
Hi,

mir war nicht bewußt, dass es ein Unterschied macht.
Das Schlüsselwort ist ein String....
zum Beispiel ABC-C21xxx
oder ABC-C21yyyy
Das xxx oder das yyy interessiert nicht. Also "filtern" auf ABC-C21

Mit diesem hole ich mir dann in einer anderen Spalte strings, die ich in Zahlen umwandel.

Testdaten, muß ich erst anonymisieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2020, 14:04
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 16.616
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Array durchsuchen
Hallo hulk,

nochmal vereinfacht:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.09.2020, 19:12 (Dieser Beitrag wurde zuletzt bearbeitet: 27.09.2020 21:59 von hulk.)
Beitrag #7

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Dec 2015

LV 2016
2016
DE


Deutschland
RE: Array durchsuchen
Hallo Gerd,

És sieht so aus, als ob ich eine dataflow Verständnislücke habe:

Wenn ich meine while loop genau so in eine Casestrukur einer Statemachine packe, warum funktioniert das dann nicht mehr?

Danke

edit: mit der for Schleife geht es


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.09.2020, 09:43 (Dieser Beitrag wurde zuletzt bearbeitet: 28.09.2020 09:52 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 16.616
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Array durchsuchen
Hallo Hulk,

wenn du jetzt mit LV2016 arbeitest, solltest du deine Signatur anpassen!

Zitat:Wenn ich meine while loop genau so in eine Casestrukur einer Statemachine packe, warum funktioniert das dann nicht mehr?
Was genau "funktioniert nicht" mehr?
Hast du eine genauere Fehlerbeschreibung?

Schau mal hier:
   
Mit deinem Notifier erzeugst du eine RaceCondition!
Was passiert zuerst: neuen Wert in den Notifier schreiben oder Notiifer-Status lesen?
Warum liest du den "Index" nicht vor dem Case, zusammen mit dem "state"?

Die While-Loop habe ich etwas vereinfacht.
LV2016 sollte doch auch schon die ConditionalTunnels unterstützen, die ich im letzten Bild verwendet hatte, oder?

Zitat:edit: mit der for Schleife geht es
Das ist mit dem gezeigten Snippet wenig verständlich.Warum sollte ein FOR-Loop "funktionieren", wo eine While-Loop "nicht funktioniert"?

Edit:
Hulk, Crossposts bitte immer selbst anzeigen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2020, 13:06
Beitrag #9

hulk Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Dec 2015

LV 2016
2016
DE


Deutschland
RE: Array durchsuchen
Guten Morgen Gerd

sorry für die crossing Geschichte. Mein Miniprogramm wächst schneller als gedacht. Aber prinzipiell bin ich funktionell auf der Zielgeraden.

1) bezüglich der While Schleife habe ich diese einfach 1:1 in ein case gepackt. Aber es hat wohl eine race condition ausgelöst.

2)
Zitat:LV2016 sollte doch auch schon die ConditionalTunnels unterstützen, die ich im letzten Bild verwendet hatte, oder?
Das habe ich mittlerweile gefunden. Ist ziemlich nett und simpler als die Variante mit while.

3) Zusammen mit der for loop habe ich es jetzt in Verwendung. Das VI ist angehängt. Dein Vorschlag mit der while Schleife habe ich noch nicht getestet. Leider hatte ich noch keine Zeit, es zu verstehen.

4) Aktuell habe ich nur noch eine Frage, bevor ich wieder alleine zurecht komme (hoffe ich). Es betrifft die string Suchfunktion.
Die Ergebnisse der Suche enthält zuviele Werte.
Bsp: Das Suchwort aus der Listbox lautet ABC-C21VXER
In der Tabelle gibt es aber auch ABC-C21VXER-E01 . Diese wird ebenfalss mit aufgenommen.
Getestet habe ich mit "Muster suchen" und "Ausdruck" suchen.

Gruß
Steffen


Angehängte Datei(en)
16.0 .vi  Main.vi (Größe: 90 KB / Downloads: 12)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2020, 15:40
Beitrag #10

Martin.Henz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 152
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Array durchsuchen

Akzeptierte Lösung

(29.09.2020 13:06 )hulk schrieb:  Bsp: Das Suchwort aus der Listbox lautet ABC-C21VXER
In der Tabelle gibt es aber auch ABC-C21VXER-E01 . Diese wird ebenfalss mit aufgenommen.
Getestet habe ich mit "Muster suchen" und "Ausdruck" suchen.
Das Suchwort an sich, macht noch keinen Regulären Ausdruck. wenn du PCRE verwendest und das so wie jetzt einfach in "regular expression" rein stopfst findet er alles was irgenwo "ABC-C21VXER" enthält.

PCRE sollte man schon etwas verstehen bevor es zum Einsatz kommt.
http://www.pcre.org/current/doc/html/pcre2pattern.html

Ich weis leider nicht so genau, nach was du eigentlich genau suchst. Wenn es ganz exakt "ABC-C21VXER" sein soll, dann musst du "\AABC-C21VXER\Z" angeben. Es gibt dabei aber eventuell noch andere Dinge zu beachten, denn manche Zeichen haben in PCRE eine andere Bedeutung (siehe Link oben).

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  2d-array durchsuchen Jolle 5 1.451 06.11.2019 15:54
Letzter Beitrag: jg
  2D Array durchsuchen und bestimmte Werte ersetzen sara2211 4 2.828 13.01.2017 10:59
Letzter Beitrag: sara2211
  String durchsuchen Problem HTL_HL 21 6.796 18.12.2015 11:33
Letzter Beitrag: HTL_HL
  Array auf gleiche Zeilen durchsuchen shamu 13 10.683 11.08.2015 14:18
Letzter Beitrag: Dustin
  2D Array nach 0/1 durchsuchen & neues Array erstellen Nullstrom 4 3.198 04.03.2015 13:25
Letzter Beitrag: Lucki
  Tabellenstring durchsuchen? Scarto 15 8.433 21.11.2014 11:47
Letzter Beitrag: Lucki

Who read this thread?
2 User(s) read this thread:
janso, Fraba

Gehe zu: