Autor Thema: Wie oft Element in Array?  (Gelesen 9241 mal)

botschi

  • Gast
Wie oft Element in Array?
« 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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wie oft Element in Array?
« Antwort #1 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

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Wie oft Element in Array?
« Antwort #2 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

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Wie oft Element in Array?
« Antwort #3 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
Gruß
Dirk

botschi

  • Gast
Re: Wie oft Element in Array?
« Antwort #4 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

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Wie oft Element in Array?
« Antwort #5 am: 09.09.08 - 09:32:03 »
mit meiner Variante brauchst Du keine Schleife über das Array.
Gruß
Dirk

botschi

  • Gast
Re: Wie oft Element in Array?
« Antwort #6 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

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Wie oft Element in Array?
« Antwort #7 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.
Gruß
Dirk

Offline Hive

  • Senior Mitglied
  • ****
  • Beiträge: 345
  • Geschlecht: Männlich
  • Whooaaaa!!
    • g-notes.de
Re: Wie oft Element in Array?
« Antwort #8 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
I love deadlines, i love the whooshing sound they make when they pass by

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Wie oft Element in Array?
« Antwort #9 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.
Gruß
Dirk

Offline Hive

  • Senior Mitglied
  • ****
  • Beiträge: 345
  • Geschlecht: Männlich
  • Whooaaaa!!
    • g-notes.de
Re: Wie oft Element in Array?
« Antwort #10 am: 09.09.08 - 14:26:35 »
stimmt .. mir ist kurz @unique ins hirn gefahren ..
I love deadlines, i love the whooshing sound they make when they pass by

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wie oft Element in Array?
« Antwort #11 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

botschi

  • Gast
Re: Wie oft Element in Array?
« Antwort #12 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

Offline Hive

  • Senior Mitglied
  • ****
  • Beiträge: 345
  • Geschlecht: Männlich
  • Whooaaaa!!
    • g-notes.de
Re: Wie oft Element in Array?
« Antwort #13 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
I love deadlines, i love the whooshing sound they make when they pass by

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wie oft Element in Array?
« Antwort #14 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

botschi

  • Gast
Re: Wie oft Element in Array?
« Antwort #15 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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz