Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
aild
0 / 0 / 1
Регистрация: 26.03.2010
Сообщений: 74
1

Поменять регистр в строке

11.12.2010, 19:45. Просмотров 1312. Ответов 8
Метки нет (Все метки)

Кому нибудь приходилось менять регистр слова допустим из 5 букв? Например:
Delphi
1
2
3
4
5
6
7
abcde
Abcde
aBcde
abCde
...
AbcDe
...
и так далее, ну в общем сначала 1 большая буква, потом 1-ая маленькая, 2 - большая и так далее, все возможные варианты? Вот нашел функцию
Delphi
1
function UpCase
.

Проблема заключается в том, чтобы сделать цикл чтобы охватывал все варианты.
Может кто знает как действовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 19:45
Ответы с готовыми решениями:

поменять местами числа в строке
подскажите. допустим есть строка 321436587 нужно получить из нее 312345678. как...

Как поменять местами значения символов в строке?
Подскажите пожалуйста с задачей! Нужно поменять значение символов в строке...

Поменять в строке местами второе и предпоследнее слово
Есть Edit(в нём записана строка), необходимо в данной строке поменять второе и...

Поменять местами первое и последнее слово в строке
помогите поменять местами первое и последнее слово в строке. Язык Делфи ...

В каждой строке матрицы поменять местами минимальный элемент с максимальным
Дана матрица порядка 4х4. В каждой строке поменяйте минимальный элемент с...

8
o-user
245 / 202 / 26
Регистрация: 03.02.2009
Сообщений: 786
11.12.2010, 21:08 2
В двоичных числах происходит перебор всех вариантов (например: 1- большая, 0 - маленькая):
00001
00010
00011
00100
...
11110
11111
1
aild
0 / 0 / 1
Регистрация: 26.03.2010
Сообщений: 74
12.12.2010, 18:51  [ТС] 3
o-user, точно, можно в 2-ом коде представить....

Чего та не так получается.. Пишу следующее:
Delphi
1
2
3
4
5
6
7
procedure TForm1.Button2Click(Sender: TObject);
var
  i, max: integer;
begin
  max:=strtoint(edit3.text);
  for i:=0 to max  do listbox1.Items[i]:=DecToBin(i);
end;
А он выводит:
Delphi
1
2
3
4
5
6
0
01
0110
011011
011011100
...
хотелось бы стобы вышло:
Delphi
1
2
3
4
5
6
0
1
10
11
100
...
Добавлено через 16 минут
Чуть не забыл, вот функция:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function DecToBin(Value: integer): string;
var
  l: string;
  i :integer;
begin
  while Value > 1 do
  begin
    l := l + IntToStr(Value mod 2);
    Value := Value div 2;
  end;
  if Value <> 0 then l := l + '1' else l := '0';
  for i:=length(l) downto 1 do
    result := result + l[i];
end;
0
o-user
245 / 202 / 26
Регистрация: 03.02.2009
Сообщений: 786
12.12.2010, 19:43 4
А я думал, надо что-то такое:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
uses math;
 
function DecToBin(Value: integer;n:integer): string;
var
  l: string;
  i :integer;
begin
   l:=\'\';
   for i:=1 to n do
      begin
         l:=chr(ord(\'0\')+ (value mod 2))+l;
         value:=value div 2;
      end;
 
    result := l;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var   i, max: integer;
begin
  max:=strtoint(edit1.text);
 
  for i:=0 to  trunc(power(2,max))-1 do
     listbox1.Items[i]:=DecToBin(i,max);
end;
\' - это просто кавычка.
1
aild
0 / 0 / 1
Регистрация: 26.03.2010
Сообщений: 74
21.01.2011, 18:06  [ТС] 5
Ребята, вопрос снова актуален.
Таблица:
Delphi
1
2
3
4
00
01
10
11
Строка:
Delphi
1
ая
Не совсем понятно как связать поднятие регистра по примеру таблицы (1 - заглавная буква, 0 - маленькая) и строки. Подскажите кто как считает?

В конце должно получиться по идее так:
Delphi
1
2
3
4
ая
аЯ
Ая
АЯ
0
ybn
26 / 26 / 2
Регистрация: 27.09.2010
Сообщений: 59
21.01.2011, 18:23 6
А может так:
Delphi
1
2
3
4
5
6
7
  Var i:intreger;
      sr:String;
Begin
   st:=Edit1.text;
   For i:=1 to length (st) do
      st[i]:=UpCase (st[i]);
end;
Не уверен, первое что на ум пришло! ))))
0
yamilramilev
265 / 257 / 46
Регистрация: 08.10.2009
Сообщений: 554
21.01.2011, 19:25 7
Например связать так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
 
 for i := 0 to ListBox1.Count - 1 do
    begin
    tempstr:=stroka;
      for j := 0 to length(stroka)-1 do
         if listbox1.Items[i][j]='1' then 
            begin
              tempstr[j]:=upcase(tempstr[j]);
              memo1.lines.add(tempstr);
             end;
   end;
1
aild
0 / 0 / 1
Регистрация: 26.03.2010
Сообщений: 74
21.01.2011, 20:14  [ТС] 8
yamilramilev, вроде бы работает, но немнога неправльно определяет какой символ поменять.
Можете объяснить, что значит эта строчка?
Delphi
1
listbox1.Items[i][j]
0
yamilramilev
265 / 257 / 46
Регистрация: 08.10.2009
Сообщений: 554
21.01.2011, 21:33 9
listbox1.Items[i][j] - это j-ый символ строки находящийся в i-том элементе ListBox'а
0
21.01.2011, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2011, 21:33

Поменять местами минимальный и максимальный элемент матрицы в каждой строке
Поменять местами минимальный и максимальный элемент матрицы в каждой строке ...

Поменять местами наибольший и первый элементы в каждой строке матрицы
Помогите решить Поменять местами наибольший и первый элементы в каждой строке...

В строке символов поменять местами символы на четных и нечетных позициях
ребятки помогите кто можит с задачкой: В строке символов поменять местами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru