Имя: Пароль:
1C
 
Поиск пробелов в строке
0 banne
 
22.12.08
09:36
Подскажите, может кто сталкивался с таким: Мне надо найти в строке пробел и убрать его.... Но 1С-ка упорно его не видет.... Данные загружаются с SQL-сервера в таблицу значений расположенной на форме.
1 ТелепатБот
 
гуру
22.12.08
09:36
2 Mitriy
 
22.12.08
09:37
попробуй Символы.НПП, Символы.Таб и т.п.
3 Defender aka LINN
 
22.12.08
09:39
Сдается мне, бот угадал :)
4 banne
 
22.12.08
09:44
(3), да Бот определенно угодал!!!!
Спасибо!!!!
5 Odin1C
 
22.12.08
09:59
Функция УбратьПробелы(ФормулаДляРасчета)
   
   сч = 1;
   
   Для сч = 1 По СтрДлина(ФормулаДляРасчета) Цикл
   
       Если КодСимвола(ФормулаДляРасчета,сч) = 160 Тогда
           
           ПозПобела = сч;
           Стр1 = Сред(ФормулаДляРасчета, 1, сч - 1);
           Стр2 = Сред(ФормулаДляРасчета, ПозПобела + 1, СтрДлина(ФормулаДляРасчета) - ПозПобела + 1);
           ФормулаДляРасчета = Стр1 + Стр2;
           ФормулаДляРасчета = УбратьПробелы(ФормулаДляРасчета);
       КонецЕсли;
           
   КонецЦикла;
   
   Возврат ФормулаДляРасчета;

КонецФункции // ()
6 b_ru
 
22.12.08
10:20
(5) просто позорный код
7 zbv
 
22.12.08
10:21
(6) зато с рекурсией. :)
8 AiR
 
22.12.08
10:28
СтрЗаменить() не подойдет???
9 Odin1C
 
22.12.08
10:47
(6) Зато работает и пишется с пол-пинка. Для 1 раза проверить 1 строку пойдет.
10 Odin1C
 
22.12.08
10:48
(8) СтрЗаменить помойму пробелы не ловит.
11 Mitriy
 
22.12.08
10:49
(9) а в (8) пишется без пинков, но в полнажатия...
12 vde69
 
22.12.08
10:49
(10) а ты попробуй :) будешь удивлен
13 Fragster
 
гуру
22.12.08
10:50
даешь регулярки!
14 Defender aka LINN
 
22.12.08
10:52
(10) Да что ты говоришь...
15 Serg_1960
 
22.12.08
10:55
Вы о чём коллеги? Я так понял, что автор по наивности разделитель перепутал с пробелом :) Вы тоже хотите убирать пробелы из чисел больше "1 000" :))
16 Mitriy
 
22.12.08
11:00
(15) эта тема уже закрыта и неинтересна :))
17 Odin1C
 
22.12.08
11:04
Однако кто-нить объяснит разницу между СтрЗаменить(Строка, " ", "X") и СтрЗаменить(Строка, Символ(160), "X")?
18 ДенисЧ
 
22.12.08
11:06
(17) " " и Символ(16) - разные символы
19 Odin1C
 
22.12.08
11:06
Процедура ОсновныеДействияФормыДействие(Кнопка)
   
   ЧислоЧ = 10200;
   СтрокаЧ = Строка(ЧислоЧ);
   Сообщить(СтрДлина(СтрокаЧ));
   СтрокаЧ1 = СтрЗаменить(СтрокаЧ, " ", "X");
   Сообщить(СтрокаЧ1);
   СтрокаЧ2 = СтрЗаменить(СтрокаЧ, Символ(160), "X");
   Сообщить(СтрокаЧ2);
   
   
КонецПроцедуры
20 Odin1C
 
22.12.08
11:08
КодСимвола(" ") = 160
21 ДенисЧ
 
22.12.08
11:08
КодСимвола(" ") = 32 вообще-то
22 Defender aka LINN
 
22.12.08
11:08
(17) 160 - неразрывный пробел. 32 - обычный. Какие проблемы?
23 YauheniL
 
22.12.08
11:09
(9) Для второго раза и другой строки надо писать другую функцию o_O
24 hhhh
 
22.12.08
11:11
(19)

СтрокаЧ2 = СтрЗаменить(СтрокаЧ, Символ(160), "X"); - лохастая команда

Надо писать:

СтрокаЧ2 = СтрЗаменить(СтрокаЧ1, Символ(160), "X");
25 Odin1C
 
22.12.08
11:11
(22) да нет никаких, но подстава с этими пробелами лютая
26 eklmn
 
гуру
22.12.08
11:12
в (5) жесть.
27 Defender aka LINN
 
22.12.08
11:12
(25) Никаких подстав. Юзай Формат, когда с числами работаешь.
28 Serg_1960
 
22.12.08
11:15
(27) Зачем сказал - всё испортил :(
29 Salvador Limones
 
22.12.08
11:17
(28) +1 :-)))) Садюга!!! Спалил СП в конфигураторе.
30 Serg_1960
 
22.12.08
11:28
(29) Точно! Ака - садюга, спалил тему :( своими замечаниями в (22) и (27)
31 Odin1C
 
22.12.08
11:34
Нда, так и быть, пришлось добавить (1) в избранное.