Как убрать лишние пробелы.

1. MakcTLT63 5 27.05.15 17:00 Сейчас в теме
Привет всем.
Точно помню что где-то читал описание какой то функции, и там было написано, что она преобразует исходную строку в строку без лишних пробелов.
Где я это мог прочитать?
Пните в нужную сторону.
ЗЫ. Про СтрЗаменить() я в курсе. Это не то.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PetroP 27.05.15 17:05 Сейчас в теме
Что такое "строка без лишних пробелов"?
3. rasswet 82 27.05.15 17:05 Сейчас в теме
что значит без лишних?
СокрЛП не оно?
4. dmitrichenko.ivan 6 27.05.15 17:10 Сейчас в теме
либо СокрЛП(), Либо СтрЗаменить(Строка, " ","")
user894576; +1 Ответить
5. MakcTLT63 5 27.05.15 17:13 Сейчас в теме
Там в описании было написано, что типа возвращается строка в которой двойные, тройные и т.д. пробелы заменяются на одинарные.
И вроде как даже верхний регистр преобразуется в нижний.
Вот как то так.
Где я мог это видеть? Не приснилось же мне это?
Но это не СокрЛП и не СтрЗаменить...
6. karpik666 3945 27.05.15 17:24 Сейчас в теме
(5) MakcTLT63, я понял ты засланный казачок, все такие задумались есть ли такая функция, поняли что ее нет - а ты такой: "Ха, ха, а в других языках программирования есть:-P"
8. PetroP 27.05.15 17:55 Сейчас в теме
(5) MakcTLT63, это называется прикладная функция. Надо либо взять у кого-то, либо написать свою.
7. artamir 8 27.05.15 17:36 Сейчас в теме
Пробел=" ";
Пока Найти(Стр,Пробел+Пробел) <> 0 Цикл
  Стр = СтрЗаменить(Стр,Пробел+Пробел,Пробел);
КонецЦикла


Такое не подойдет?
user2062737; RusskyPhX; user1302055; Dimka74; karpik666; dj_serega; +6 Ответить
9. MakcTLT63 5 27.05.15 20:33 Сейчас в теме
Блин нашел. Это в экселе оказывается:
"Чтобы удалить лишние пробелы в Excel, есть специальная функция – СЖПРОБЕЛЫ (TRIM) из категории Текстовые. Она удаляет из текста все пробелы, кроме одиночных пробелов между словами"
Карпик где то прав. Но я не специально..
10. Поручик 4669 27.05.15 21:49 Сейчас в теме
ИскомаяСтрока = "Строка   со   многими     пробелами.    Я     люблю            много       пробелов  в    строке";
Пока Найти(ИскомаяСтрока, "  ") > 0 Цикл
  ИскомаяСтрока = СтрЗаменить(ИскомаяСтрока, "  ", " ");
КонецЦикла;


После обработки
ИскомаяСтрока = "Строка со многими пробелами. Я люблю много пробелов в строке";
tiltED; romulanin; user894576; rusness; TSSV; alei1180; innakiw1988; корум; Romario_; vanessa; 3sf; EASports; I_am_for_peace; BONI; axelerleo; +15 Ответить
11. axelerleo 347 27.05.15 23:01 Сейчас в теме
(10) Поручик, коротко и ясно:)
12. karpik666 3945 28.05.15 06:36 Сейчас в теме
(10) Поручик, а чем (10) отличается от (7) ?
Тогда уж, если автору нужно именно СЖПРОБЕЛЫ
String = "Строка   со   многими     пробелами.    Я     люблю            много       пробелов  в    строке";
NewString = СЖПРОБЕЛЫ (String);

Function СЖПРОБЕЛЫ (val TRIM)
	While Find(TRIM, "  ") > 0 Do
		TRIM = StrReplace(TRIM, "  ", " ");
	EndDo;
	Return TRIM
EndFunction
Показать
Bolnov; nihfalck; +2 Ответить
13. dj_serega 394 28.05.15 07:33 Сейчас в теме
(12) karpik666,
а чем (10) отличается от (7) ?
У него нет параметров и (был) 1 лайк :))))))))))
14. karpik666 3945 28.05.15 07:34 Сейчас в теме
15. MakcTLT63 5 28.05.15 09:10 Сейчас в теме
Вот вы красавцы)) Особенно (12) очень помогло))
Вот прям помогли так помогли..))
А можно еще вот так
Функция СЖПРОБЕЛЫ(Стр)
	Если Найти(Стр, "  ") Тогда
		Стр = СтрЗаменить(Стр, "  ", " ");
		СЖПРОБЕЛЫ(Стр);
	КонецЕсли;   
   Возврат Стр;
КонецФункции
Показать
корум; inanity; +2 1 Ответить
16. karpik666 3945 28.05.15 10:23 Сейчас в теме
(15) MakcTLT63, с помощью рекурсии будет ведь дольше выполняться?=)
17. Поручик 4669 28.05.15 12:35 Сейчас в теме
(15) Вот так не можно, потому что рекурсивный вызов функции тут ни в ... белую, ни в Красную армию совершенно лишний.
И параметр функции надо объявлять с передачей по значению.
axelerleo; +1 Ответить
18. RusskyPhX 26.11.21 13:52 Сейчас в теме
(10) Можно ещё после цикла добавить ИскомаяСтрока = СокрЛП(ИскомаяСтрока);
19. prizrak37 20.10.23 14:41 Сейчас в теме
Без циклов можно вот так:

	
ТестСтр = "Строка   со   многими     пробелами.    Я     люблю            много       пробелов  в    строке";
	
СтрБезПр = СтрСоединить(СтрРазделить(ТестСтр," ",Ложь)," ");

Может кому пригодиться.
native-api; brylig; Meverix; elian; user1874299; Serega-77; Lya12345; 1c_ssnik; denk32; +9 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот