![]() |
|
|
#1
|
|||
|
|||
|
Здравствуйте.
Подскажите пожалуйста код, чтобы он генерировал слова в разных регистрах. К примеру: Цитата:
Заранее спасибо |
|
#2
|
|||
|
|||
|
можно найти код для получения комбинаций, навроде [1,2][1,3]...
и увеличить буквы по этим индексам, ещё есть функция product (исодник на си при клике), можно оттуда скопировать описание, может что и найдётся --- написал что-то вроде этой функции product Код:
join(product([['a','A'],['b','B']])[0]) = 'AB'
join(product([['a','A'],['b','B']])[2*2 - 1]) = 'ab'
function product(given: array of smy): aamy;
var givens: aamy; i, j, len, count, step, current_count: integer;
begin
count := length(given);
setlength(givens, length(given));
for i := 0 to high(givens) do
givens[i] := to_array(given[i]);
len := 1;
for i := 0 to high(givens) do
len := len * length(givens[i]);
setlength(result, len);
for i := 0 to high(result) do
setlength(result[i], count);
step := 1;
for j := 0 to count - 1 do
begin
current_count := length(givens[j]);
for i := 0 to len - 1 do
result[i][j] := givens[j][(i div step) mod current_count];
step := step * length(givens[j]);
end;
for i := 0 to high(givens) do
setlength(givens[i], 0);
setlength(givens, 0);
end; Последний раз редактировалось Pyro, 10.02.2013 в 10:52. |
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
crash94 (11.02.2013)
| ||
|
#3
|
||||
|
||||
|
Получился сильно ламерский код, достойный страниц говнокода, но надёжно рабочий и попроще:
Код:
function Usr(ds: char): char;
begin
case ds of
'а':Result:='А';'б':Result:='Б';'в':Result:='В';'г':Result:='Г';'д':Result:='Д';
'е':Result:='Е';'ё':Result:='Ё';'ж':Result:='Ж';'з':Result:='З';'и':Result:='И';
'й':Result:='Й';'к':Result:='К';'л':Result:='Л';'м':Result:='М';'н':Result:='Н';
'о':Result:='О';'п':Result:='П';'р':Result:='Р';'с':Result:='С';'т':Result:='Т';
'у':Result:='У';'ф':Result:='Ф';'х':Result:='Х';'ц':Result:='Ц';'ч':Result:='Ч';
'ш':Result:='Ш';'щ':Result:='Щ';'ъ':Result:='Ъ';'ы':Result:='Ы';'ь':Result:='Ь';
'э':Result:='Э';'ю':Result:='Ю';'я':Result:='Я'; else Result:=UpCase(ds);end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
str: string;
i : integer;
begin
str:= Edit1.Text;
for i:= 1 to Length(str) do
// for i:= Length(str) downto 1 do
begin
str[i]:= Usr(str[i]);
memo1.Lines.Add(str);
end;
end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
crash94 (11.02.2013)
| ||
|
#4
|
||||
|
||||
|
Код:
function AnsiUpperCase(const S: string): string; |
|
#5
|
||||
|
||||
|
И правда работает,здОрово - тогда нужна только процедура клика кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject); var str: string; i : integer; begin str:= Edit1.Text; for i:= 1 to Length(str) do // for i:= Length(str) downto 1 do begin str[i]:= AnsiUpperCase(Str[i])[1]; memo1.Lines.Add(str); end; end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
crash94 (11.02.2013)
| ||
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
crash94 (11.02.2013)
| ||
|
#7
|
||||
|
||||
|
если слово не длиннее 32 символов можно так:
Код:
var
s, r: String[32];
i, j: DWORD;
begin
s:=Edit1.Text;
for i:=0 to (1 shl Length(s)-1) do
begin
r:='';
for j:=0 to Length(s)-1 do
if ((i shr j) and 1)=1 then r:=r+AnsiUpperCase(s[j+1])
else r:=r+AnsiLowerCase(s[j+1]);
Memo1.Lines.Add(r);
end;
end; |
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
crash94 (11.02.2013)
| ||
|
#8
|
|||
|
|||
|
Всем спасибо.
То, что нужно |