jak uzyskac stringi

0

Witam

Jak ze stringa np: ABS.CD.EF|GSH|IJK.LM.NO uzyskac stringi

StringList:
ABS.CD.EF.LM.NO
ABS.CD.GSH.LM.NO
ABS.CD.IJK.LM.NO

Znak | moze byc oczywiscie w dowolnym miejscu i w dowolnej ilosci

0

Witam,
Chcesz sie tylko pozbyc | ?
Czy chcesz sie pozbyc | i zrobic mieszanie?
Pozdrawiam

0

adi_anabel i co z tym???

to może napisz jak Ci się te ciągi zrobiły (domyślam się, że | to tak jakby ALBO) a najlepiej to napisz założenia na jakich ta zamiana się odbywa

// przeca to widać - Ł

// ta ktoś poda kod, będzie nad nim siedział, kombinował a tu się okaże, że zamiast . (kropki) może być np , (przecinek) :P

0

Tak, chce zrobic mieszanie

0

Za pomca funkcji i procedur Pos, Copy, Delete wyciagniesz zadane stringi. Nastepnie wrzuc je do tablicy i wymieszaj ja za pomoca funkcji Randomize, np

 Randomize;
 for i := 1 to 500 do
   begin
      los := Random(100); //wylosuj liczbe z maxa tablicy
      tablica[i] := jakasZmienna;
      tablica[i] := Tablica[los];
      tablica[los] := jakasZmienna;
   end;
</delphi>
0

Wyciągnięcie stringów to rzecz prosta w akżdej książce znajdziesz, gorzej z ustaleniem jak pomiesza- a dokladnei pododawac.
Stawiałbym raczej na utworzenie tablicy dynamicznej o ilosci pól równej n-1, gdzie n to liczba stringów.
Następnie ustawiłbym w pętli zwiększanei tablicy, od wszystkich 0 do wszystkich 1 - w sposób binarny zawsze dodając najmniej znaczacą jedynkę. Następnei składasz teksty w sposób warunkowy: tekst1 (stały) + if pole tablicy[i] =1 to tekst[i]
Przykład
ABC|D|EF|GHI
teksty 1=ABC 2=DE 3=EF 4=GHI
tablica 4-1=3
poczatek tab=[0,0,0]
składanie wynik=ABC
inkrementacja tab=[0,0,1]
składanie wynik=ABC+GHI
inkrementacja tab=[0,1,0]
składanie wynik=ABC+EF
inkrementacja tab=[0,1,1]
składanie wynik=ABC+EF+GHI
inkrementacja tab=[1,0,0]
składanie wynik=ABC+D
inkrementacja tab=[1,0,1]
składanie wynik=ABC+D+GHI
inkrementacja tab=[1,1,0]
składanie wynik=ABC+D+EF
inkrementacja tab=[1,1,1]
składanie wynik=ABC+D+EF+GHI

Co prawda mógłbyś zrobić to samo dekodując na binarny watrtość od 0 do (2 do potęgi (n-1))-1 (tutaj (2 do (4-1)) -1 = 7), ale tak łatwiej wytłumaczyć

0

ufffff, mam odpowiednią procedurę, dzieki wszystkim za zainteresowanie

1 użytkowników online, w tym zalogowanych: 0, gości: 1