Seite 1 von 1

Softseek in Arrays?

Verfasst: So, 18. Nov 2018 20:04
von Roland
Hallo zusammen,

ich bin immer wieder begeistert von diesem Forum und habe hier auch schon sehr viel gelernt. Auch gefällt mir das Niveau beim Umgang miteinander sehr. Also ganz herzlichen Dank dafür an alle engagierten Mitstreiter!

Jetzt habe ich mal ein kleines Problem, für das ich eine Lösung suche:

Wenn ich in einer DBF-Datei über einen Index suche, kann ich per 'set softseek on' festlegen, dass die Suche beim nächstgrösseren Element endet falls das eigentliche Element nicht gefunden wird. Klassisches Beipiel: Die Suche nach einem bestimmten Nachnamen. Sehr praktisch das...

Jetzt meine Frage: Gibt es bei der Durchsuchung von Arrays auch eine möglichst elegante Lösung wie dieses Softseek? Und falls ja, wie müsste das aussehen?

Allen eine schöne Woche!

Roland

Re: Softseek in Arrays?

Verfasst: So, 18. Nov 2018 21:03
von AUGE_OHR
hi,
Roland hat geschrieben: So, 18. Nov 2018 20:04 ... kann ich per 'set softseek on' festlegen, dass die Suche beim nächstgrösseren Element endet falls das eigentliche Element nicht gefunden wird.

Jetzt meine Frage: Gibt es bei der Durchsuchung von Arrays auch eine möglichst elegante Lösung wie dieses Softseek?
wenn du beim suchen den ganzen Begriff angibst wird er nur was finden wenn "alle Buchstaben" passen.

die Lösung wäre also ein Inkrementelles suchen wo man den Begriff "auf Tastendruck" zusammenstellt.
damit findet man in DBF und Array das was man sucht und braucht kein "SOFTSEEK"

Re: Softseek in Arrays?

Verfasst: So, 18. Nov 2018 22:09
von Tom
Standardmäßig gibt es das nicht (Ascan hat m.E. keinen passenden Parameter), aber das ist schnell selbstgebaut. AEval ist Dein Freund. Code, wenn nötig, morgen.

Re: Softseek in Arrays?

Verfasst: Mo, 19. Nov 2018 8:19
von brandelh
Hi,

was mach softseek ???

es sucht ob es den gleichen Begriff gibt, wenn nicht steht es auf dem Folgesatz, dieser ist größer als der Suchbegriff !

Du musst also nur im codeblock angeben, dass der Suchbegriff <= dem ArrayFeldInhalt ist !

aDaten := { "AAA","BBB", "CCC", "DDD" }

x := AScan( aArray, {|aD| "B" <= aD ) // => "B" ist größer als "AAA", aber kleiner als "BBB" somit müsste 2 als Antwort genau richtig stehen. Bei gleich wird es auf dem gleichen Satz stehen, oder übersehe ich was ?

Re: Softseek in Arrays?

Verfasst: Mo, 19. Nov 2018 9:59
von Tom
Stimmt, Hubert. =D>

Re: Softseek in Arrays?

Verfasst: Di, 20. Nov 2018 11:28
von Roland
Hallo zurück!

Manchmal sieht man halt den Wald vor lauter Bäumen nicht...

Jetzt klappt es!

Vielen Dank und beste Grüsse

Roland