Имя: Пароль:
1C
1С v8
Работа со строками. Отсечение ВСЕХ незначащих символов?
,
0 SeiOkami
 
13.10.12
13:43
СокрЛ(<Строка>) - Функция отсекает незначащие символы, стоящие слева от первого значащего символа в строке.

СокрЛП(<Строка>) – Функция отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.

СокрП(<Строка>) – Функция отсекает незначащие символы, стоящие справа от последнего значащего символа в строке.


Как можно избавиться от ВСЕХ незначащих символов в тексте ?
Я так понял, что незначащие - пробелы, табы, перевод строки и прочее.
1 Светлый Гений
 
13.10.12
13:44
СтрЗаменить()
2 BlackSeaCat
 
13.10.12
13:49
Зависит от количества "и прочего": эффективным будет либо СтрЗаменить(), либо посимвольный перебор в цикле.
3 SeiOkami
 
13.10.12
13:54
СтрЗменить() можно, но тогда нужно делать сначала замену пробелов, затем табов, затем переносов и т.д.

Я просто думал, что раз есть стандартный метод избавления от всего этого мусора, то он должен быть и для всего текста, а не справа или слева от значащего символа
4 Светлый Гений
 
13.10.12
13:55
(3)нет, таких стандартных методов нет
5 Mikeware
 
13.10.12
13:55
(3) Пробелытабуляцииипереводыстрокиэтодалеконемусор!
6 SeiOkami
 
13.10.12
14:00
(4)
Жаль(

(5)
В моем случае мусор

А еще вопрос. Есть функция Сред()
Сред(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – Функция выбирает строку символов, начиная с символа <НачальныйНомер>, общим количеством <ЧислоСимволов>.

А такая функция: (<Строка>, <НачальныйНомер>, <КонечныйНомер>) ???
7 SeiOkami
 
13.10.12
14:01
есть?
8 GROOVY
 
13.10.12
14:02
Функция СокрВнутр(Знач СтрокаВход)
   НезначащиеСимволы = Новый Массив();
   НезначащиеСимволы.Добавить(Символ(32));
   НезначащиеСимволы.Добавить(Символ(160));
   НезначащиеСимволы.Добавить(Символ(******));
   
   Для Каждого ЗначениеСимвола Из НезначащиеСимволы Цикл
       СтрокаВход = СтрЗаменить(СтрокаВход, ЗначениеСимвола, "");
   КонецЦикла;    
   
   Возврат СтрокаВход;
КонецФункции
9 BlackSeaCat
 
13.10.12
14:02
(6) Канэшна!

Просто КонечныйНомер=НачальныйНомер+ЧислоСимволов

:-)
10 GROOVY
 
13.10.12
14:03
Символы в массив добавлять по вкусу
11 oleg_km
 
13.10.12
14:04
Ну или регулярные выражения
12 SeiOkami
 
13.10.12
14:11
(8)
ну такими способ понятно. я думал, что надеюсь по реже индусский код использовать =)

(9)
Спасибо, почемусь не догадался. У меня вообще через опу вышло =)
13 BlackSeaCat
 
13.10.12
14:15
(12) Чтобы потом меня не материть:

КонечныйНомер=НачальныйНомер+ЧислоСимволов-1

Так будет правильно.
14 SeiOkami
 
13.10.12
14:15
(13) =)
ну эт я знаю

у меня так вышло

   КоординатаЛевогоЗнака = Найти(ИмяФункции, "(") + 1;
   КоличествоСимволов = Найти(ИмяФункции, ")") - КоординатаЛевогоЗнака;
   стрПараметры = Сред(ИмяФункции, КоординатаЛевогоЗнака, КоличествоСимволов) ;
Программист всегда исправляет последнюю ошибку.