AGB  ·  Datenschutz  ·  Impressum  







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

String verdrehen

Ein Thema von fortuneNext · begonnen am 21. Feb 2008 · letzter Beitrag vom 21. Feb 2008
Antwort Antwort
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#1

String verdrehen

  Alt 21. Feb 2008, 14:15
^Hi,
hier mal wieder eine einfache Frage.

Delphi-Quellcode:
  StringCopy := Uncrypted;
  x := 0;
  Randomize;
  For x := 1 to Length(Uncrypted) do
  begin
    StringCopy[x] := Uncrypted[Random(Length(Uncrypted))];
  end;
StringCopy soll eigentlicheine zufällige Reihenfolge von Buchstaben des Strings Uncrypted werden. Aber er wird irgendwie meistens zu kurz, nur 1-2 Buchstaben! (Uncrypted ist 4-9 Buchstaben lang). Wieso das?
fortuneNext

PS: Jaja, ich überseh wieder was sehr simples...
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#2

Re: String verdrehen

  Alt 21. Feb 2008, 14:22
...weil eine Zufallszahl auch mehrmals die gleiche sein kann.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: String verdrehen

  Alt 21. Feb 2008, 14:53
Ich glaube, zwei Denkfehler gefunden zu haben.

a) die for-Schleife darf nur bis Length(...) -1 laufen.
Begründung: Sonst liesst Du zuviele Werte aus.
b) es muss Random(Length(...) -1) heissen.
Begründung: Ein string ist mit "\0" abgeschlossen.
Wenn Du bis über das string-Ende rausliesst, liesst Du das "\0" mit aus.
Damit ist der string x schon frühzeitig beendet.

Wie wäre es, wenn Du mal den Debugger anschmeisst und schaust, wann und warum der string x zu kurz wird.
Alles andere sind nur Vermutungen...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: String verdrehen

  Alt 21. Feb 2008, 15:03
Ich glaube ihr überseht gerade etwas wichtiges, fortuneNext und RavenIV. Strings werden mit 1 bis Length(Str) indiziert, Random geht aber von 0 bis Parameter-1. Folglich muss zu Random noch 1 addiert werden.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: String verdrehen

  Alt 21. Feb 2008, 18:38
Das ist es. Danke!
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

Re: String verdrehen

  Alt 21. Feb 2008, 18:41
Dir ist aber klar, dass Du wahrscheinich nicht die selben Buchstaben wie im Original erhältst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 05:40 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