0 / 0 / 0
Регистрация: 13.05.2017
Сообщений: 6
1

Убрать лишние пробелы

13.05.2017, 19:08. Показов 2673. Ответов 10
Метки нет (Все метки)

Дело в том, что в строке мне нужно убрать все пробелы до первого символа кроме пробела, после последнего символа и все пробелы которые встречаеются 2 и более раз подряд.

Например есть строка:
Delphi
1
    Hello    World
И нужно получить:
Delphi
1
Hello World
Есть идеи?

Заранее извиняюсь за глупый вопрос
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2017, 19:08
Ответы с готовыми решениями:

Цикл с предусловием: убрать лишние пробелы
Доброго дня всем. Задали написать программу, которая убирает лишние пробелы (то есть 2 пробела...

Убрать лишние буквы, цифры и пробелы из строки
Всем привет. Написал прогу которая уберает лишние цифры буквы и т.д но после получени результать у...

Выводится предложение, необходимо убрать лишние пробелы
Помогите сделать задание в делфи 7: Выводиться предложение, необходимо убрать лишние пробелы.

В тексте убрать лишние пробелы между словами, оставив по одному
1. В тексте убрать лишние пробелы между словами, оставив по одному.

10
Эксперт Pascal/Delphi
4879 / 2752 / 848
Регистрация: 04.10.2012
Сообщений: 10,029
13.05.2017, 19:35 2
Delphi
1
2
//s - ваша строка
While Pos(' ', s)>0 do Delete(s, Pos(' ', s), 1);
0
882 / 584 / 178
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
13.05.2017, 19:37 3
Цитата Сообщение от MrSergey2004 Посмотреть сообщение
убрать все пробелы до первого символа не являющегося пробелом
TrimLeft().
Цитата Сообщение от MrSergey2004 Посмотреть сообщение
убрать все пробелы после последнего символа не являющегося пробелом
TrimRight().

Или одновременно оба: Trim().

Цитата Сообщение от MrSergey2004 Посмотреть сообщение
убрать все пробелы которые встречаются 2 и более раз подряд
В цикле замена через StringReplace() двух пробелов на один пробел, до тех пор пока длина строки не перестанет уменьшаться.
0
0 / 0 / 0
Регистрация: 13.05.2017
Сообщений: 6
13.05.2017, 19:44  [ТС] 4
Всем большое спасибо!!!
0
Эксперт Pascal/Delphi
4879 / 2752 / 848
Регистрация: 04.10.2012
Сообщений: 10,029
14.05.2017, 02:00 5
MrSergey2004, на всякий случай ещё вариант
0
Модератор
8095 / 5362 / 2210
Регистрация: 21.01.2014
Сообщений: 23,052
Записей в блоге: 3
14.05.2017, 05:10 6
Ну и я свои 3 копейки добавлю
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var L: TStringList;
begin
 L := TStringList.Create;
 L.Delimiter := #32;
 L.DelimitedText := Edit1.Text;
 Edit2.Text := L.DelimitedText;
 L.Free;
end;
Миниатюры
Убрать лишние пробелы  
0
Модератор
8095 / 5362 / 2210
Регистрация: 21.01.2014
Сообщений: 23,052
Записей в блоге: 3
14.05.2017, 05:15 7
droider, в первом приведенном Вами коде (пост #2) картинка получается такая:
Миниатюры
Убрать лишние пробелы  
0
Эксперт Pascal/Delphi
4879 / 2752 / 848
Регистрация: 04.10.2012
Сообщений: 10,029
14.05.2017, 05:23 8
D1973, да, он удаляет все пробелы . Поэтому я привёл ещё одно решение, размещенное мной в другой теме.
0
D1973
14.05.2017, 05:33
  #9

Не по теме:

Эх-х, если бы студни по ссылкам, которые им дают, ходили и смотрели...

0
Эксперт Pascal/Delphi
4879 / 2752 / 848
Регистрация: 04.10.2012
Сообщений: 10,029
14.05.2017, 05:37 10
Чтобы через while все корректно работало, нужно между апострофами добавить ещё один пробел. Забыл .
Т.е.
Delphi
1
2
//s - ваша строка
While Pos('  ', s)>0 do Delete(s, Pos( '  ', s), 1);
+Trim()

Добавлено через 2 минуты
D1973,

Не по теме:

да уж.... Многие их в упор не видят

0
225 / 80 / 35
Регистрация: 01.04.2017
Сообщений: 182
14.05.2017, 10:50 11
В XE можно еще до кучи регулярки использовать:
Delphi
1
2
3
4
5
6
7
uses RegularExpressions
...
var
  regexp: TRegEx;
begin
  edit2.Text:= regexp.Replace(Edit1.Text, '^\s+|\s+$|(\s)\s+', '\1');
end;

Не по теме:

правда это уже напоминает стрельбу по воробьям из пушки

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2017, 10:50
Помогаю со студенческими работами здесь

В тексте убрать лишние пробелы между словами, оставив по одному
Составить программу обработки строк. Текст помещать в Memo. В тексте убрать лишние пробелы между...

Удалить из строки лишние пробелы
Здравствуйте. Это мне нужно для экзамена. Сделать нужно уже сегодня( Кто может помочь, буду очень...

Удалить лишние пробелы из строки Edit
надо удалить лишние пробелы из строки Edit. Вот часть кода помогите исправить //тут ...

Отредактировать файл, удалив лишние пробелы
задано текстовый файл. Отредактировать его, удалив лишние пробелы


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru