kako da recimo da generisem neki string na fazonu : aaa aab aac aad... aaz aba abc... dok se taj string ne poklopi sa nekim drugim stringom?
neznam koje ime da dam svom topicu
Zaključano
Zakačeno
Code:
var
nnn,nnn1:string[50];
i,d:integer;
begin
nnn1:='nik'; //Sa ovim uporedjujes
nnn:=chr(1);
i:=1; //duzina stringa je jedan
d:=1;
while (true) do
begin
if d < 256
then
begin
nnn[i]:=chr(ord(nnn[i])+1);
d:=d+1;
end
else
begin
i:=i+1;
nnn:=nnn+chr(1);
nnn[i]:=chr(ord(nnn[i])+1);
d:=1;
end;
if (nnn=nnn1) then break;
end;
ShowMessage(nnn); //pokazes string koji si dobio
end;
var
nnn,nnn1:string[50];
i,d:integer;
begin
nnn1:='nik'; //Sa ovim uporedjujes
nnn:=chr(1);
i:=1; //duzina stringa je jedan
d:=1;
while (true) do
begin
if d < 256
then
begin
nnn[i]:=chr(ord(nnn[i])+1);
d:=d+1;
end
else
begin
i:=i+1;
nnn:=nnn+chr(1);
nnn[i]:=chr(ord(nnn[i])+1);
d:=1;
end;
if (nnn=nnn1) then break;
end;
ShowMessage(nnn); //pokazes string koji si dobio
end;
Ja sam ovako zamislio. Nisam ga testirao, testiraj ga pa javi sta se desava.
Pa reci prijatelju da je problem u konacnim automatima
inace, to se zove brute-force :)
Potpis
da znam da se to zove bruteforce ali da sam to napisao topic bi verovatno bio izbrisan :> anyway ovaj kod sto si dao ne radi.. izbacuje neki access violation
ne bi bio izbrisan topic... evo i ja sam ranije pitao to, ali nisam uspeo... ako ti uspes - javi:
https://www.elitesecurity.org/t92652#596806
https://www.elitesecurity.org/t7656#57380
https://www.elitesecurity.org/t92652#596806
https://www.elitesecurity.org/t7656#57380
Potpis
Evo koda... samo imajte u vidu da je uzasno spor (nije pisan u asm, koristi long string, cesto poziva setlength, poziva application.proccessmessages, prikazuje text u label...) tako da ce mu za rec od 4 slova trebati mnoooooooooooooooooogo vremena. Jedina optimizacija je sto se proveravaju samo karakteri od #32 do #126. Program provereno radi.
Potpis
eeeeee hvala srki!!
Potpis
Nema problema... ovaj kod se lako da izmenuti da proverava samo odredjene karaktere (npr. samo "ASDFGasdfg")... samo ga treba optimizovati