вообщем такая проблема есть строка ,например Code: примет как дела? нужно заменить рандомно один из пробелов другим текстом вопрос как ето сделать
можно вот так, в юсес math не забудь добавить PHP: function replace_rnd_space(str, str2:string):string; var s,s2:string; pos:integer; begin s:=str; randomize; pos:=randomrange(1,length(s)-8); s2:=StringReplace(copy(s, pos, 12),' ', str2, [rfIgnoreCase]); delete(s, pos, 12); insert(s2, s, pos); result:=s; end; procedure TForm1.Button1Click(Sender: TObject); begin showmessage(replace_rnd_space('привет как дела привет как дела', '123')); end;
1n0y опередил меня, но все же выложу и свой код. Code: function randomReplace(des : char; replace, source : string) : string; var strArr : array of integer; i, k : integer; begin if pos(des, source)=0 then begin result := source; exit; end; for i := 1 to length(source) do if source[i] = des then begin setLength(strArr, length(strArr)+1); strArr[length(strArr)-1] := i; end; randomize(); k := strArr[random(length(strArr))]; result := ''; for i := 1 to length(source) do if i=k then result := result + replace else result := result + source[i]; end; procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := randomReplace(' ', ' какая-то строка', Edit1.Text); end;