Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: botschi am 08.09.08 - 17:23:00

Titel: Wie oft Element in Array?
Beitrag von: botschi am 08.09.08 - 17:23:00
Wie kann man prüfen, wie oft ein Element in einem Array steckt?
Muss man das Element beim ersten Treffer durch irgendwas ersetzen und dann in einer Schleife nochmal das Array durchsuchen?

Ich konnte keinen Befehl dafür finden...

Matthias
Titel: Re: Wie oft Element in Array?
Beitrag von: koehlerbv am 08.09.08 - 17:59:08
Welche Sprache? Was ist Dir bekannt oder soll das für jede (unbekannte) Element des Arrays vorgenommen werden?

Auf jeden Fall bist Du mit einem Replace und (Full)Trim schon auf der richtigen Spur. Einen expliziten "Befehl" gibt es dafür jedenfalls nicht.

Bernhard
Titel: Re: Wie oft Element in Array?
Beitrag von: TRO am 09.09.08 - 08:09:55
Wenn LotusScript möglich, dann würde ich das mit einer Liste erschlagen:

   Dim sa_array (0 To 10) As String
   Dim i_zaehlListe List As Integer
   
   Forall e In sa_array
      If Iselement( i_zaehlListe( e )) Then
         i_zaehlListe( e ) = i_zaehlListe( e ) + 1
      Else
         i_zaehlListe( e ) = 1
      End If 'Iselement
   End Forall 'e In sa_array

Thomas
Titel: Re: Wie oft Element in Array?
Beitrag von: diali am 09.09.08 - 08:41:47
geht im Script wie mit @Funktionen

- Trim (FullTrim) über das Array (@Trim, Fulltrim)
- Anzahl der Elemente im Array merken (@Elements, Ubound - Lbound)
- die gesuchten Elemente mit einem Leerstring ersetzen (@Replace, ArrayReplace)
- Trim (FullTrim) über das Array (@Trim, Fulltrim)
- Anzahl der Elemente im Array ermitteln (@Elements, Ubound - Lbound)
- Differenz aus den beiden Anzahlwerten ergibt die Anzahl der gesuchten Elemente
Titel: Re: Wie oft Element in Array?
Beitrag von: botschi am 09.09.08 - 09:30:21
Das ist ja doof...
Das Array ist ziemlich groß, ca. 20000 Elemente können enthalten sein. Wenn ich das immer in einer Schleife durchgehen muss, scheint mir das nicht sehr performant.

Ich such mir nochmal eine Alternative, vielleicht kann ich es auch anders machen.

Danke für die Antworten!
Matthias
Titel: Re: Wie oft Element in Array?
Beitrag von: diali am 09.09.08 - 09:32:03
mit meiner Variante brauchst Du keine Schleife über das Array.
Titel: Re: Wie oft Element in Array?
Beitrag von: botschi am 09.09.08 - 09:45:26
Gut, dass Du das nochmal sasgt  ;D
Aber warum Ubound - Lbound? Nur für den Fall, dass mein Array nicht bei 0 anfängt?
Ich bau das mal eben so ein.

Matthias
Titel: Re: Wie oft Element in Array?
Beitrag von: diali am 09.09.08 - 09:47:16
...
Aber warum Ubound - Lbound? Nur für den Fall, dass mein Array nicht bei 0 anfängt?
...
Ja genau. Wiederverwendbarer Code - spart Arbeit und Zeit.
Titel: Re: Wie oft Element in Array?
Beitrag von: Hive am 09.09.08 - 12:57:59
was passiert eigentlich wenn mehrerer Elemente in dem Array doppelt/mehrfach vorkommen, bezüglich des Trims und der bound aus dem dann ein Ergebnis errechnet wird?? :oD

MfG KAI
Titel: Re: Wie oft Element in Array?
Beitrag von: diali am 09.09.08 - 13:32:15
ne dies passt schon.

Deshalb werden ja auch zuerst alle leeren Einträge entfernt und dann die Anzahl des Startarrays ermittelt.
Titel: Re: Wie oft Element in Array?
Beitrag von: Hive am 09.09.08 - 14:26:35
stimmt .. mir ist kurz @unique ins hirn gefahren ..
Titel: Re: Wie oft Element in Array?
Beitrag von: koehlerbv am 09.09.08 - 14:28:15
Wobei: "Leere" Einträge können auch doppelte Einträge sein - kommt auf die jeweilige Anforderung an.

Und das ganze Procedere ohne Schleife setzt voraus, dass man den Inhalt des mehrfach vorkommenden Wertes schon kennt. Diese meine Frage von oben wurde ja bisher nicht beantwortet.

Bernhard
Titel: Re: Wie oft Element in Array?
Beitrag von: botschi am 09.09.08 - 14:40:14
Das ist der Ursprung http://atnotes.de/index.php?topic=42354.0 des "Problems".

Ich bekomme eine Liste mit Namen, die ich importieren muss. Wenn es "Hans Dampf" mehrmals in der Liste gibt, muss ich die Adressbucheinträge so anlegen, dass man die verschiedenen "Hans Dampf" unterscheiden kann.
Dafür gibt es viele Wege zum Ziel. Eine Idee war, die "doppelten" zu erkennen und dann (je nachdem, wie oft es den Namen gibt) sie eindeutig zu machen.

Matthias
Titel: Re: Wie oft Element in Array?
Beitrag von: Hive am 09.09.08 - 15:12:49
Bei uns gibt's nur Herr Dampfs und Frau Dampfs und die werden denn mit Abteilung und lfd Nr. untersschieden. :oD

Dann ist es aber doch einfacher wenn du die der Reihe nach anlegst und mit einem DBlookup z.b. auf Users$ schaust ob ein Zusatz hinten dran muss oder nicht ..

KAI
Titel: Re: Wie oft Element in Array?
Beitrag von: koehlerbv am 09.09.08 - 15:22:21
Für diesen Fall würde ich die List-Variante bevorzugen (siehe #2 hier). Bei 20.000 Namen dürfte Dir ein Array wohl auch um die Ohren fliegen - siehe dessen Grenzen.

Bernhard
Titel: Re: Wie oft Element in Array?
Beitrag von: botschi am 09.09.08 - 15:23:12
Ja eben, viele Wege führen zum Ziel.
Mein Gedanke war, ich könnte mit einem einzigen "Befehl" ermitteln, wie oft es Hans Dampf gibt und dann entsprechend handeln.

Ich habe mich auch für einen anderen Weg entschieden.
Danke für die Hilfe!

Matthias