![]() |
Kombinationen von Strings
Hallo,
ich habe ein kleines Problem und komme nicht Ansatzweise auf eine Lösung. Ich habe eine beliebige Anzahl von TStringListen in denen diverse Werte stehen. z.B. StringListe1 = Rot Blau Grün StringListe2 = L XL XXL StringListe3 = 100 200 300 Alle StringListen sind als Objekt in einer weiteren StringListe die ich hier mal OBJ nenne. Nun muss ich folgendes Bewerkstelligen: Ich benötige Variationen alle Werte in einem String, z.B. Rot,L,100 Rot,L,200 Rot,L,300 Rot,XL,100 Rot,XL,200 usw. Ich muss also in allen möglichen Kombinationen die Listen durchlaufen und das Ergebnis beinhaltet diese Variationen. Mir fehlt jedoch bereits der Denkansatz. Gelesen habe ich hier über Permutationen , aber diese wüfeln auch die Listeneinträge selbst. Ich würde mich über ein paar Denkanstöße freuen. |
AW: Kombinationen von Strings
Hallo und Willkommen in der DP :dp:,
könnte man das Problem nicht einfach mit 3 verschachtelten Schleifen lösen? |
AW: Kombinationen von Strings
Moin... :hi:
Stichwort: 3 ineinander verschachtelte Schleifen. :twisted: der schon wieder... :stupid: |
AW: Kombinationen von Strings
Hallo,
sollte das Thema nicht mit drei geschachtelten For Schleifen zu erschlagen sein?
Delphi-Quellcode:
Grüße
for i:=0 to StringList1.count -1 do
for j:=0 to StringList2.count -1 do for k:=0 to StringList3.count -1 do begin Memo1.lines.add(format('%s, %s, %s',[stringList1[i],stringList2[j],stringList3[k]])); end; Klaus |
AW: Kombinationen von Strings
Erster! :tongue: :cheer:
|
AW: Kombinationen von Strings
@Klaus01:
Ab mindestens Delphi 2010 kann man sich auch solch einen Spaß erlauben. (vielleicht auch schon ab 2009/2006/TDE ... da sowas blöder Weise nicht in er OH erwähnt wird, bin ich mir nicht ganz sicher)
Delphi-Quellcode:
Aber bei den 3 Schleifchen bleibt es dennoch.
for S1 in StringList1 do
for S2 in StringList2 do for S3 in StringList3 do Memo1.Lines.Add(Format('%s,%s,%s', [S1, S2, S3])); |
AW: Kombinationen von Strings
ICH LIEBE EUCH!
:) Vielen Dank für die vielen und schnellen Antworten. |
AW: Kombinationen von Strings
Delphi-Quellcode:
...echt sowas geht ? Muß ich mal ausprobieren...
for S1 in StringList1 do
|
AW: Kombinationen von Strings
Zitat:
Delphi-Quellcode:
...
TAuto = class
public Marke : string; Typ : string; Farbe : String; end; TGarage = TList<TAuto>;
Delphi-Quellcode:
MeineGarage := TGarage.Create;
try auto := TAuto.Create; auto.Marke := 'Porsche'; auto.Typ := '911'; Auto.Farbe := 'Blau'; MeineGarage.Add(Auto); for auto in MeineGarage do ShowMessage(auto.Marke); finally MeineGarage.Free; end; |
AW: Kombinationen von Strings
Für TStrings und Nachfahren existiert standardmäßig schon ein Enumerator.
Delphi-Quellcode:
Bei Arrays und für einige andere Listen (z.B. TList oder TComponent) gibt es auch sowas.
TStringsEnumerator = class
private FIndex: Integer; FStrings: TStrings; public constructor Create(AStrings: TStrings); function GetCurrent: string; inline; function MoveNext: Boolean; property Current: string read GetCurrent; end; TStrings = class(TPersistent) public ... function GetEnumerator: TStringsEnumerator; ... end; Für eigene Klassen kann man Diesen selber nachrüsten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz