![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли Trim для всей строки, а не для краев?
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 как-то скромно. Нужно было назвать "аэтопеременнаячерезкоторуюпередаетсястрокагдебудутудалятьсяпробелы"