string generation

4 отговора 159 прегледа
#1

string generation

trqbva mi nqkakav algoritam/za predpochitane sas source/ za generirane na stringove.. primerno.. kazva mu se izpolzvai samo malki bukvi i toi pochva
a
b
c
d
..
aa
ab
ac
..
abcdef
...
hjepadfv

ili pak mu se kazva golemi malki bukvi i cifri i pochva da gi redi v sashtiq stil..
mislq che podobni algoritmi se izpolzvat pri bruteforce hackovete no.. na men mi trqbva za generirane na drugo neshto a ne znam otkade da namera takav bruteforcer s kod..

Отговор
в отговор на Deadmaker #2

Re: string generation

Mi mnoo lesno
var b,c,d,e:char;
begin
Randomize;
b:=random(128);
c:=random(128);
d:=random(128);
e:=random(128);
end;
i posle gi slepvash i si gotov ... si neznam tochno kak sa razpolojeni po ascii tablicata malki i golemi , no sam mojesh da vidish niakade <b>Tova e ot men</b>

Отговор
в отговор на Deadmaker #3

Re: string generation

Първото което ми идва на ум (макар и малко болен в момента ;-))) е да поразгледаш бройни системи (това може би е малко отдалечено на пръв поглед), но реално твоя стринг може да се представи като число от N тична бройна система - само трябва да си определиш броя на елементите - и на кой елемент коя буква да съответства.

т.е. представи си го нещо от сорта (по - долу)- само че тук е ограничено от десетичната система - което можеш да премахне като ползваш N- тична такава - където N e боря на буквите + цифрите (като можеш да изполваш и специална подредба - примерно главните да са след малките или обратно)

1 - а
2 - б
....
11 - аа
12 - аб


...
1111111 - ааааааа

Реално ти трябва един боряч от 0 ... до където решиш и една функция която преобразува това число от 10 -тична в N -тична система - много е просто, ама ме мързи да го разписвам - във вси4ки учебници го има.

---
Е т'ва е живот!
Отговор
в отговор на Deadmaker #4

Re: string generation


program bfmi;

{$APPTYPE CONSOLE}

uses
SysUtils;

const
xleters:string='ABCDEFGH';
lastletter='H'; //speed optimization issue

function GenNext (s:String):string;
var
x:integer;
begin
if s='' then begin
result:=xleters[1];
exit;
end;
Result:=s;
for x:=length(Result) downto 1 do begin
if Result[x]=lastletter then begin
Result[x]:=xleters[1];
end else begin
Result[x]:=xleters[pos(Result[x],xleters)+1];
exit;
end;
end;
Result:=xleters[1]+Result;
end;

var
x:integer;
s:String;
begin
s:=GenNext('');
for x:=1 to 20 do begin
Writeln (s);
s:=GenNext (s);
end;
readln;
end.


------------------------------
I got a COMPILER, and I'm not afraid to use it!

Редактирано от SDR на

Отговор
в отговор на Deadmaker #5

Re: string generation = JIN

The Wizard PIE JIN

var
Form1: TForm1;
Xn: byte = 65; //A
Xk: byte = 90; //Z
implementation
{$R *.DFM}

function NextLeter(S: string): string;
var
i: integer;
begin
if S = '' then begin Result := chr(Xn); exit; end;
for i := 1 to length(S) do
begin
if ord(S) < Xk then begin
S := chr(ord(S) + 1);
Result := S;
exit;
end else begin
S := chr(Xn);
Result := S;
end;
result := Result + chr(Xn);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text := NextLeter(edit1.Text);
end;

Отговор