Autor Thema: mehrfache Einträge in einer Liste identifizieren  (Gelesen 3064 mal)

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Hallo zusammen,

ich habe ein problem. Aus einer Liste mit vielen einträgen sollen nur die Werte angezeigt werden, die doppelt oder noch häufiger in der Liste vorkommen.

Die Liste habe ich mir aus verschiedenen Feldern zusammengestellt, nun komme ich aber nicht weiter.

Viele Grüße
Wilhelm

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #1 am: 05.08.09 - 14:01:37 »
Hallo Wilhelm,

Formel oder Script?

Toni
Grüßle Toni :)

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #2 am: 05.08.09 - 14:03:31 »
bin momentan in der Formalsprache

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #3 am: 05.08.09 - 14:06:13 »
@do
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #4 am: 05.08.09 - 14:14:19 »
Das verwirrt mich jetzt .... ???

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #5 am: 05.08.09 - 15:11:53 »
... mit @For durch die Liste laufen und prüfen ob der aktuelle Wert schon da war. War er schon da, dann ist es ein doppelter. Du nimmst also den aktuellen Wert und schaust, ob du in in deiner Prüfliste schon entahlten hast. Ist er schon drinnen, dann nimmst du diesen in eine neue Liste auf. Die zweite Liste enthält dann alle mehrfach vorkommenden Werte...

Toni
Grüßle Toni :)

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #6 am: 06.08.09 - 09:06:46 »
Vielen dank für den Tip, ich werde es dann gleich mal angehen.

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #7 am: 06.08.09 - 12:11:44 »
so, verzweifele mal wieder ( bin kein Entwickler..)

das habe ich gebastelt mit dem Resultat, dass mir eine leere Liste angezeigt wird.

Liste:= @Trim(@Replace(Feld1:Feld2:Feld3...""; ""));

@For(n:=1;n<=@Elements(Liste);n:=n+1;
   
       temp:=temp:Liste;
       tmp :=tmp:neu;
@If(@Contains(tmp;Liste[n])=1;neu :=neu:Liste[n];""));
@If(@Contains(temp;Liste[n])=1;tmp :=tmp:Liste[n];"");

@trim(neu)

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #8 am: 06.08.09 - 13:53:46 »
Aus deiner einen Liste wieder zwei machen.

Eine davon darf nur Einzelwerte enthalten.

Einmal durch ein Liste mit den eindeutigen Werten gehen und für jeden Wert in der Liste mit den Eindeutigen Werten die Anzahl der Elemente in deiner Originalliste ermitteln und an das Elemente das du gerade überprüft hast anhängen.

Anschließend diese geänderte Eindeutige Liste überprüfen und alles was <2 ist wegwerfen Das was übrig bleibt sind deine mehrfach vorkommenden Elemente.

Wie du die verarbeitest hängt davon ab was du erreichen willst. Du kannst als Ergebnis WertX existiert n mal rausbekommen oder nur noch eine Liste mit übriggebliebenen Werten.

@unique, @for, @trim, @transform @explode @if @texttonumber und @word sind dazu notwendig.

Und das Ganze geht in vier Zeilen Formelsprache, oder wenn du es aus einem Button heraus aufrufst in fünf Zeilen. Es ist allerdings schon deutlich komplexere Formelsprache.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #9 am: 06.08.09 - 14:08:07 »
Hier noch eine kleine Anregung.

Code
_L1 := "Test" : "Test" : "Test2" : "Test3" : "Test4" : "Test" : "Test2";
_L2 := "";
_L3 := "";
@Prompt([Ok]; "Anzahl"; "Anzahl: " + @Text(@Elements(_L1)));
@Prompt([Ok]; "Liste 1"; "Wert 1: " + _L1[1]);

@For
(n:=1; n<=@Elements(_L1); n:=n+1;
  @If(@IsMember(_L1[n]; _L2); _L3 := _L3 : _L1[n]; _L2 := _L2 : _L1[n])
);

@Prompt([Ok]; "Liste 2"; @Implode(_L2));
@Prompt([Ok]; "Liste 3"; @Implode(_L3))

oder um mit koehlerbv (Berhard) seinen ueblichen Vergleichen von Strings und Listen zu arbeiten
Code
@For
(n:=1; n<=@Elements(_L1); n:=n+1;
  @If(_L1[n] *= _L2; _L3 := _L3 : _L1[n]; _L2 := _L2 : _L1[n])
);


Andreas
« Letzte Änderung: 06.08.09 - 14:11:32 von ascabg »

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #10 am: 06.08.09 - 14:35:37 »
Andreas du petzt .....   ;D

Code
C_LIST := List1:List2;
T_LIST := @Unique(C_LIST);
@For(N:=1;n<=@Elements(T_LIST);N := N+1;INT_LIST := INT_LIST + "~" + T_LIST [N]+ "#" + @Text (@Elements(@Trim(@Transform(C_LIST;"V";@If(T_LIST[N]!= V ;"" ; V))))));
FIELD ListMultipleElements := @Trim(@Transform(@Explode(INT_LIST;"~");"V1";@If(@TextToNumber(@Word(V1;"#";2))>1;@Word(V1;"#";1);"")));

Liefert das selbe Ergebnis wie der Code von Andreas, beziehungsweise von Bernhard, aber kann entweder Alternativ, oder zusätzlich noch die Anzahl der Elemente zurückgeben, wenn man in der letzten Zeile das zweite @Word einfachtdurch V1 ersetzt.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #11 am: 06.08.09 - 14:44:01 »
so , ich habs jetzt raus...

Liste:= @Trim(@Replace(Feld1:Feld2:Feld3...""; ""));

@For(n:=1;n<=@Elements(Liste);n:=n+1;
@If(@Contains(tmp;Liste[n])=1;neu :=neu:Liste[n];"");
@If(@Contains(Liste;Liste[n])=1;tmp :=tmp:Liste[n];""));

@Trim(neu)

Danke für eure Tipps !!

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: mehrfache Einträge in einer Liste identifizieren
« Antwort #12 am: 06.08.09 - 15:09:28 »
Zitat
Andreas du petzt .....    ;D

 :-[

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz