Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Есть ли Trim для всей строки, а не для краев?


Страницы:   1 2 3

Kolan ©   (2010-01-22 16:57:00) 

Здравствуйте!

Есть ли встроенная функция для удаления дублирующихся пробелов во всей строке?


turbouser   (2010-01-23 15:04:00) [21]


> Kolan ©

[1]


Kolan   (2010-01-23 15:03:00) [22]

turbouser, научите меня как оформить вызов, чтобы он съел переменное количество пробелов в середине. Например в такой строке: 'I have    no  idea        of how StringReplace   can help me delete all       this  spaces.'


turbouser   (2010-01-23 14:56:00) [23]


> Kolan ©   (23.01.10 14:52) [23]


> я спрашивал про готовое.

так StringReplace и есть готовое..


Kolan   (2010-01-23 14:52:00) [24]

sniknik, так всю программу можно в строчку вместить :).
Я не хочу писать свою реализацию даже из двух строчек.

Что такое CompactSpaces, Анатолий?

Дмитрий, спасибо, но я спрашивал про готовое.

---
Неужели, ребята, вы думаете, что я не в состоянии написать такую функцию и пришел сюда за кодом?


Дмитрий Белькевич   (2010-01-23 14:45:00) [25]

Такая еще есть


function DelSpace1(const S: String): String;
var
I: Integer;
begin
Result := S;
for I := Length(Result) downto 2 do
 if (Result[I] = ' ') and (Result[I - 1] = ' ') then
  Delete(Result, I, 1);
end;


Правда, неоптимальная по скорости. Но компактная.


Anatoly Podgoretsky   (2010-01-23 14:08:00) [26]

> Kolan  (23.01.2010 09:30:13)  [13]

StringReplace это супер функция, на CompactSpaces


sniknik   (2010-01-23 12:41:00) [27]

2 строчки исключительно для форматирования, чтобы человеку читать удобнее было... напиши в одну. или разнеси функции форматирования (а это именно функции/подпрограмма хотя и в строке) регекспа на разные строки, чтобы в равных условиях оценивать.
и в чем разница?
кроме того конечно, что регэкспом немного дольше будет работать.


Kolan   (2010-01-23 12:24:00) [28]

Несомненно, так как в этом случае строчка одна.


Andy BitOff   (2010-01-23 12:13:00) [29]

> Kolan ©   (23.01.10 11:15) [17]

Это несомненно лучше, чем написать две строчки кода.


Kolan   (2010-01-23 11:15:00) [30]

Да его нужно устанавливать, TRegExpr называется.


KilkennyCat   (2010-01-23 10:43:00) [31]

В каком смысле? Его отдельно доустанавливать надо? Так и строковые функции многие написаны сторонне, далеко не апишные.


Kolan   (2010-01-23 09:58:00) [32]

Регулярные выражения — это сторонний класс.


KilkennyCat   (2010-01-23 09:57:00) [33]


> очевидно, что такой функции нет.

противоречит

> решил регулярным выражением.


Kolan   (2010-01-23 09:30:00) [34]

Да, тему обсуждение можно закрывать, так как по косвенным признакам очевидно, что такой функции нет.

P. S.
Задачу решил регулярным выражением.


Kolan   (2010-01-23 09:28:00) [35]

Спасибо ребята, конечно, но задача не решена. Я просил встроенную функцию из VCL или сообщение об её отсутствии.

Дублирующиеся пробелы, Игорь, это когда не одни пробел, а несколько. Больше одного то есть.

Я, Анатолий, не недоволен, я удивлен ответам.

Smile, лучше я скажу тебе куда тебе пойти.


Anatoly Podgoretsky   (2010-01-22 19:44:00) [36]

> Kolan  (22.01.2010 17:05:02)  [2]

Еще один недовольный.


MBo   (2010-01-22 18:25:00) [37]

>Приз за имя
Самому понравилось ;)


clickmaker   (2010-01-22 18:21:00) [38]

> Нужно было назвать "аэтопеременнаячерезкоторуюпередаетсястрокагдебудутуда
> лятьсяпробелы"

var аэтобудетпараметромфункцииRemoveTrailingAndStartingSpacesAndZipInnerSpacesчерезк оторыйпередаетсястрокагдебудутудалятьсяпробелы: string;

аэтобудетпараметромфункцииRemoveTrailingAndStartingSpacesAndZipInnerSpacesчерезк оторыйпередаетсястрокагдебудутудалятьсяпробелы := 'что-то    много  тут    пробелов';

аэтострокаужебезпробелов := RemoveTrailingAndStartingSpacesAndZipInnerSpaces(аэтобудетпараметромфункцииRemov eTrailingAndStartingSpacesAndZipInnerSpacesчерезкоторыйпередаетсястрокагдебудуту далятьсяпробелы);

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


Германн   (2010-01-22 18:17:00) [39]


> Приз за имя


А такая процедура работала бы лучше!
procedure RemoveTrailingAndStartingSpacesAnd 7ZipInnerSpaces


KilkennyCat   (2010-01-22 18:12:00) [40]


> MBo ©   (22.01.10 17:32) [4]
>
>
> procedure RemoveTrailingAndStartingSpacesAndZipInnerSpaces(var
> s: string

s как-то скромно. Нужно было назвать "аэтопеременнаячерезкоторуюпередаетсястрокагдебудутудалятьсяпробелы"


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо