Ja also schwer zu erklären
Hier ist auf jedenfall die Lösung, das passende Programm gibts später nachgeliefert.
Hier erstmal der Algorhytmus:
Delphi-Quellcode:
var mompos:array[1..20] of integer;
laenge:integer;
i,j,k:integer;
pw:string;
begin
laenge := 1;
mompos[laenge] := 1;
statusbar1.Panels[1].Text := 'Suche...';
start := GetTickCount;
panel1.Caption := memo1.Text[1];
while panel1.Caption <> 'aaaa' do
begin
pw := panel1.Caption;
memo2.Lines.Add(pw);
for i:=length(pw) downto 1 do
begin
if pw[i] <> memo1.Text[length(memo1.Text)] then
begin
pw[i] := next_char(pw[i]);
if length(pw) > i then
for k:=i+1 to length(pw) do
pw[k] := memo1.text[1];
break;
end
else if i = 1 then
begin
if length(pw) > 0 then
for j:= length(pw) downto 1 do
pw[length(pw)-j+1] := memo1.text[1];
pw := pw+memo1.Text[1];
break;
end;
end;
delay(10);
panel1.Caption := pw;
end;