![]() |
"Durchlauf"-Algorhytmus gesucht
Hi ich versuche gerade einen Algorhytmus zu schreiben, der folgendes tun soll:
-> Beginnen mit den ersten Buchstaben aus einem Memo. -> Falls diser Buchstabe nicht der letzte aus dem Memo ist, den nächsten buchstaben aus dem Memo nehmen. -> Falls es schon der letzte ist, einen neuen Buchstaben in den String einfügen. -> Solange, bis ein String gefunden wurde.
Delphi-Quellcode:
Das ist der Code, soweit ich den schon geschrieben habe. Aber es funktioniert irgendwie nicht so recht.
while panel1.Caption <> 'aa' do
begin pw := panel1.Caption; for i:=length(pw) downto 1 do begin if pw[i] <> memo1.Text[length(memo1.Text)] then pw[i] := next_char(pw[i]) else if i = 1 then pw := pw+memo1.Text[1]; end; panel1.Caption := pw; end; Jetzt meine Frage an euch, hat einer einen solchen Algorhytmus oder findet einen Fehler in dem Code? Hoffe ihr könnt mir helfen!! |
Re: "Durchlauf"-Algorhytmus gesucht
sorichtig habe ich nicht verstanden was du bezweckst aber ich hab das mal mit kommentaren interpretiert.... ichdenke mal das mit dem next char was nich so passt, aber die funktion kenn ich nicht, ich sehe auch nicht wie das naechste zeichen aus dem memo genommen wird, sondern nur das naechste zeichen aus pw , das ja die caption des panels erhaelt
Delphi-Quellcode:
while panel1.Caption <> 'aa' do // solange panel caption nicht aa ist
begin pw := panel1.Caption; // pw = panel caption for i:=length(pw) downto 1 do // fuer i = laenge pw runter bis 1 begin if pw[i] <> memo1.Text[length(memo1.Text)] then // wenn zeichen aus pw an stelle i nicht letztes zeichen aus memo text dann pw[i] := next_char(pw[i]) // zeichen aus pw an stelle i = next_char??? funktion kenn ich nicht i = downto 1 haut das hin??? reicht da nicht einfach ein continue? else if i = 1 then // wenn i = eins pw := pw+memo1.Text[1]; // pw = pw und erstes zeichen aus memo end; panel1.Caption := pw; // panel caption = pw end; |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Windows API / MS.NET Framework API" nach "Sonstige Fragen zu Delphi" verschoben.
Hat so nichts mit der Windows-API zu tun. |
Re: "Durchlauf"-Algorhytmus gesucht
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz