AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichenkette per zufall ändern

Ein Thema von horst · begonnen am 19. Mai 2004 · letzter Beitrag vom 20. Mai 2004
Antwort Antwort
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#1

Zeichenkette per zufall ändern

  Alt 19. Mai 2004, 19:28
hallo...
ich will von einer zeichenfolge die nur aus einsen und zweien besteht z.b. '111,111,111,111,111,111' (beispiel 6 dreier gruppen können ach 4 0der 9 dreiergruppen sein) irgend eine zweite stelle einer dreiergruppe von einer 1 in eine 2 wandeln oder umgekehrt wenn schon eine 2 drin steht, das ganze natürlich nach zufallsprinzip. wie mache ich das am dümmsten.
zeichenkette könnte auch so aussehen '121,211,111,112,211,121'
es sind immer zwischen 4 und 9 dreiergruppen pro zeichenkette
weis jemand rat? bin für jede hilfe dankbar

das habe ich bisher:

Delphi-Quellcode:
     while zeile = nfolge[jetztzeil] do
      begin
       randomize;
       tonfehler := Random((anzton*3)+(anzton-1))+1;
       if copy(zeile,tonfehler,1) = '1then
        begin
         zeile := copy(zeile,1,tonfehler-1)+'2'+copy(Zeile,tonfehler+1,length(zeile));
         ok := True;
        end
       else
        if copy(zeile,tonfehler,1) = '2then
         begin
          zeile := copy(zeile,1,tonfehler-1)+'1'+copy(Zeile,tonfehler+1,length(zeile));
          ok := True;
         end;
      end;
diese routine eine erste oder eine zweite oder eine dritte stelle ich brauche aber nur eine zweite stelle
es darf aber nur die 2te oder 6te oder 10te oder 14te oder 18te oder 22te stelle verändert werden bei eine zeichenkette mit 6 dreierblöcken
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

Re: Zeichenkette per zufall ändern

  Alt 19. Mai 2004, 19:44
Meinst Du sowas ?
Delphi-Quellcode:
var
  s: string = '111,111,111,111,111,111,111';
  AnzDreierGruppen: Integer = 7;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Index: Integer;
begin
    Index := Random(AnzDreierGruppen) * 4 + 2;
    if S[Index] = '1then
      s[Index] := '2'
    else
      s[Index] := '1';
   Caption := s;
end;
MfG,
Tryer
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Zeichenkette per zufall ändern

  Alt 19. Mai 2004, 19:58
die routine ist super, damit kann ich je nach angabe in der zeile
Index := Random(AnzDreierGruppen) * 4 + 2;
die erste oder die zweite oder die dritte stelle einer dreiergruppe ändern das erschlägt die hälfte mienes problems. super.
das zweite problem.
jetzt muss ich noch die erste oder die zweite stelle einer dreiergruppe ändern, oder die erste oder die dritte stelle einer dreiergruppe;
kann du hier auch noch weiterhelfen?
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#4

Re: Zeichenkette per zufall ändern

  Alt 19. Mai 2004, 20:05
Random(AnzDreierGruppen) * 4 gibt Dir eine beliebige (zufällige) Dreiergruppe

+ 2 gibt Dir das 2. Element der gewählten Gruppe

Mir ist nicht ganz klar was Du jetzt noch suchst.

MfG,
Tryer
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Zeichenkette per zufall ändern

  Alt 19. Mai 2004, 20:10
ich habe es gerade ausprobiert funzt mit der zweiten stelle super,
Index := Random(AnzDreierGruppen) * 4 + 2
ist auch für die erste
Index := Random(AnzDreierGruppen) * 4 + 1
oder dritte stelle
Index := Random(AnzDreierGruppen) * 4 + 3
anwendbar.
super jetzt nur noch die kombi erste oder zweite stelle einer dreiergruppe der zeichenkette
z.b. zeichenkette '111,111,111,111,111`kann geändert werden z.b in
1. 111,211,111,111,111'
oder
2. 111,121,111,111,111'
oder
3. 111,111,111,211,111'
oder
4. 111,111,111,111,121'
usw.
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#6

Re: Zeichenkette per zufall ändern

  Alt 19. Mai 2004, 20:17
Du must doch nur die Stelle auch noch per Zufall bestimmen:
Index := Random(AnzDreierGruppen) * 4 + (Random(2){->0..1} + 1); MfG,
Tryer
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Zeichenkette per zufall ändern

  Alt 20. Mai 2004, 00:01
DANKE....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz