Für jedes Zeichen 5 zufällige zeichen "abspeichern"



  • Hallo,
    wie bekomme ich es hin das aus einem String (z.b. "Hallo")
    für jeden Buchstaben zufällig aus einer Liste (jede zeile ein zeichen) 5 zeichen ausgewählt werden?
    Z.B. H = +d2Ma

    Bisher habe ich es so versucht aber das Programm kommt nie zum Ende

    //st=string
    //sl=stringlist
    //benutze das vor den variablennamen
      for(int zeile=0;zeile<sl_newfile->Count;zeile++) {
        Application->ProcessMessages();
        Label6->Caption="Please wait...";
        st_zeile=sl_newfile->Strings[zeile].SubString(1,1)+" = "; //st_zeile ist einfach ein String
        while(st_zeile.Length()<variantslength+4) { //+4 weil in jederzeile 4 zeichen schon stehen die nicht mitgezählt werden sollen
          st_zeile=st_zeile+sl_symbols->Strings[random(sl_symbols->Count)].SubString(1,1);
          }
        sl_newfile->Add(st_zeile);
        st_zeile="";
        }
    

    Hoffe auf Antwort danke



  • Hast Du mal über eine Karriere als Musiker nachgedacht? 😃

    Benutz mal den Debugger. Setz mal in jeder Zeile einen Breakpoint und schau Dir die Werte der einzelnen Variablen an.

    Grüße Joe_M.



  • Wegen dem Debuggen:
    Den Wert der Variablen sieht man doch indem man den Mauszeiger über die Variable hält. Das geht aber nicht bei z.b. TStringList->Strings[x]
    Wie sehe ich da die Variable?



  • z.B. mit ShowMessage, oder Du gehst mit dem Mauszeiger über die Deklaration der StringList. Dann werden sämtliche Einträge angezeigt.



  • OK Danke, hab schon den dummen Fehlergefunden 😉



  • Dann poste doch Deine Lösung, dass Alle was davon haben.

    Gruss



  • Hätte ich sofort gemacht aber das ist eher ein Fehler in der Logik^^

    st_zeile=sl_newfile->Strings[zeile].SubString(1,1)+" = ";
    

    zu:

    st_zeile=sl_symbols->Strings[zeile].SubString(1,1)+" = ";
    

    also habe einfach falsche stringlist genommen 😕


Anmelden zum Antworten