С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
1

В edit после каждого слова ставить один пробел и каждое слово начинать с большой буквы

17.11.2016, 01:32. Просмотров 1135. Ответов 17
Метки нет (Все метки)

Как сделать, что бы в edit после каждого слова ставился только один пробел и каждое слово начиналось с большой буквы?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2016, 01:32
Ответы с готовыми решениями:

В edit после каждого слова ставить один пробел и каждое слово начинать с большой буквы
Как сделать, что бы в edit после каждого слова ставился только один пробел и...

Преобразовать строку таким образом, что бы каждое слово начиналось с большой буквы, а остальные были строчные
Дана строка. Группы символов, разделенные пробелами (одним или несколькими) и...

Отредактировать текст так, чтобы после каждого знака препинания стоял один пробел
помогите пожалуйста с этим разобраться...) составить программу, которая...

Сделать так чтобы каждое предложения начиналось с большой буквы
Как сделать так чтобы каждое предложения начиналось с большой буквы, а...

Текстовый редактор - переписать каждое слово с заглавной буквы
Люди помогите новенькому в delphi7 ! Я написал текстовый редактор но не могу...

17
Joy
Эксперт Pascal/Delphi
2175 / 1202 / 1438
Регистрация: 29.08.2014
Сообщений: 4,389
17.11.2016, 04:29 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button1Click(Sender: TObject);
var
  s:TStringList;
  i:integer;
begin
  s:=TStringList.Create;
  s.Delimiter:=' ';
  s.DelimitedText:=edit1.Text;
  edit1.Clear;
  for i := 0 to s.Count-1 do
     if s[i]<>'' then edit1.Text:=edit1.Text+AnsiUpperCase(s[i][1])+copy(s[i],2,length(s[i]))+' ';
  s.Free;
end;
0
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
18.11.2016, 04:08  [ТС] 3
Joy, выбивает такую вот ошибку
0
Миниатюры
В edit после каждого слова ставить один пробел и каждое слово начинать с большой буквы  
AHBAR
239 / 239 / 167
Регистрация: 05.04.2013
Сообщений: 1,111
18.11.2016, 05:21 4
Joy, Вот это почему так?
Цитата Сообщение от Joy Посмотреть сообщение
Delphi
1
AnsiUpperCase(s[i][1])
Добавлено через 1 минуту
Цитата Сообщение от vladimir211 Посмотреть сообщение
после каждого слова
что в вашем Edit понимается под "словом"? другими словами, какие разделители слов у вас там?
0
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
18.11.2016, 05:22  [ТС] 5
AHBAR, а как должно быть?

Добавлено через 36 секунд
AHBAR, разделитель слова - пробел
0
AHBAR
239 / 239 / 167
Регистрация: 05.04.2013
Сообщений: 1,111
18.11.2016, 05:54 6
Цитата Сообщение от vladimir211 Посмотреть сообщение
а как должно быть?
в общем случае могут быть значки препинания: запятые двоеточия и т.д.
0
Joy
Эксперт Pascal/Delphi
2175 / 1202 / 1438
Регистрация: 29.08.2014
Сообщений: 4,389
18.11.2016, 11:17 7
Цитата Сообщение от vladimir211 Посмотреть сообщение
Joy, выбивает такую вот ошибку
у меня ошибки нет.
набираю :Я помню чудное мнгеовенье передо мной явилась ты
получаю :Я Помню Чудное Мнгеовенье Передо Мной Явилась Ты

Добавлено через 1 минуту
Цитата Сообщение от AHBAR Посмотреть сообщение
Joy, Вот это почему так?
чем не нравится? сделал первую букву каждого слова заглавной
0
Joy
Эксперт Pascal/Delphi
2175 / 1202 / 1438
Регистрация: 29.08.2014
Сообщений: 4,389
18.11.2016, 11:18 8
вот проект, если ошибки пишите:
0
Вложения
Тип файла: zip Capital_first_letter.zip (4.1 Кб, 3 просмотров)
AHBAR
239 / 239 / 167
Регистрация: 05.04.2013
Сообщений: 1,111
18.11.2016, 12:17 9
Цитата Сообщение от Joy Посмотреть сообщение
чем не нравится?
все норм)) прост не всех возможностей TstringList'a знал
vladimir211, это у вас гдето в другом месте ошибка скорее всего. поэтому или покажите весь код или см.внимательней
0
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
18.11.2016, 23:51  [ТС] 10
Joy, в вашем проекте все работает.
А вот скажите можно ли это сделать не через кнопку, а что бы просто вводить это в едит и оно сразу вводилось с большой буквы?
0
northener
18.11.2016, 23:59
  #11

Не по теме:

Цитата Сообщение от vladimir211 Посмотреть сообщение
А вот скажите можно ли это сделать не через кнопку, а что бы просто вводить это в едит и оно сразу вводилось с большой буквы?
Теперь понятно откуда взялось EStackOverflow.

0
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
19.11.2016, 00:03  [ТС] 12
northener, значит сделаем через кнопку
0
northener
пофигист широкого профиля
3429 / 2328 / 631
Регистрация: 15.07.2013
Сообщений: 13,796
19.11.2016, 00:11 13
Цитата Сообщение от vladimir211 Посмотреть сообщение
northener, значит сделаем через кнопку
Можно и не через кнопку. Но!
Если во-первых код Joy поместить не в OnChange, а в OnKeyUp. А во-вторых в цикле
Delphi
1
for i := 0 to s.Count-1 do
сначала делать
Delphi
1
AnsiLowerCase(s[i]);
Это на случай, когда в эдит не добавляется символ, а вставляется в "середину".
0
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
19.11.2016, 04:24  [ТС] 14
Joy, а можно как нибудь сделать, что бы если пользователь вводил в Едит меньше трех слов то ему об этом выводилось сообщение?
0
AHBAR
239 / 239 / 167
Регистрация: 05.04.2013
Сообщений: 1,111
19.11.2016, 05:01 15
Цитата Сообщение от vladimir211 Посмотреть сообщение
Joy, а можно как нибудь сделать, что бы если пользователь вводил в Едит меньше трех слов то ему об этом выводилось сообщение?
без кнопки? а стОит ли? юзер нажмет 1 клавишу, ему выведется сообщение, нажмет вторую - опять сообщение, да пока 1 слово введет, он вас столько раз вас обругает как программиста)

Добавлено через 10 секунд
хотя если через label выводить сообщение то можно
0
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
19.11.2016, 06:33  [ТС] 16
AHBAR, нет, с кнопкой
0
Joy
Эксперт Pascal/Delphi
2175 / 1202 / 1438
Регистрация: 29.08.2014
Сообщений: 4,389
19.11.2016, 07:33 17
Лучший ответ Сообщение было отмечено vladimir211 как решение

Решение

vladimir211, можно. Написал бы сразу все хотелки.

Добавлено через 3 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
var
  s:TStringList;
  i:integer;
begin
  s:=TStringList.Create;
  s.Delimiter:=' ';
  s.DelimitedText:=edit1.Text;
  if s.count<3 then showmessage('мало слов') else begin
  edit1.Clear;
  for i := 0 to s.Count-1 do
     if s[i]<>'' then edit1.Text:=edit1.Text+AnsiUpperCase(s[i][1])+copy(s[i],2,length(s[i]))+' ';
End;
  s.Free;
end;
1
vladimir211
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 47
19.11.2016, 08:18  [ТС] 18
Joy, спасибо большое
0
19.11.2016, 08:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2016, 08:18

Поменять слова местами, оставив между ними один пробел
Как сделать чтобы допустим я ввожу Love( кучя пробелов) Cyberforum после...

После каждого символа в текстовом файле добавить пробел
Прошу вашей помощи, нужно после каждого символа в текстовом файле добавить...

Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово
Дан текст, состоящий из слов, содержащих только строчные русские буквы; между...


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

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

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