0
- 13.08.2013 - 16:40
|
Добрый день Имеется процедура подсчета в строке не отрицательных чисел: Процедура ПриНачалеРаботыСистемы() ИсходнаяСтрока = "27.3 0 0 34"; ПолученнаяСтрока = СтрЗаменить(СокрЛП(ИсходнаяСтрока), " ", Символы.ПС); ЧислоЦифр = 0; Для Сч = 1 ПО СтрЧислоСтрок(ПолученнаяСтрока) Цикл Если НЕ ПустаяСтрока(СтрПолучитьСтроку(ПолученнаяСтрока, Сч)) И Число(СтрПолучитьСтроку(ПолученнаяСтрока, Сч)) >=0 Тогда ЧислоЦифр = ЧислоЦифр + 1; КонецЕсли; КонецЦикла; Предупреждение(ЧислоЦифр); КонецПроцедуры Если в переменную ИсходнаяСтрока = "27.3 0 0 34"; добавить слово (например "27.3 0 слово 0 34") , то строка Число(СтрПолучитьСтроку(ПолученнаяСтрока, Сч)) >=0 выдаст ошибку. Можно - ли здесь как то использовать оператор Попытка ? Или придется идти другим путем и разбивать строки на символы? | |
41
- 03.09.2013 - 13:30
| | |
42
- 03.09.2013 - 15:23
|
39-VZ > не понял про неразрывный пробел. давай строку по кодам символов, затестим. а про лидирующие нули: как-то не было в техзадании от автора, ну добавим строку ПроверяемаяСтрока = СтрЗаменить(ИсхСтрока,"0","1"); перед строкой ПроверяемаяСтрока = СтрЗаменить(ИсхСтрока,",","?"); | |
43
- 03.09.2013 - 15:44
| да, надо добавить замену нулей. например, < 10.00 > тоже ж число, мало ли... | |
44
- 03.09.2013 - 16:38
| чем список с типизацией не подходит ? | |
45
- 03.09.2013 - 16:57
|
42-Зелёный тролль > НеразрывныйПробел = Символы.НПП; P.S. Точно такой же используется в ворде, кстати. | |
46
- 03.09.2013 - 18:05
|
45-VZ > ааААааа! код положил для 7.7 в 7.7 неразрывный обычный юзер не введёт, да и не нужен он там. да и, имхо, с неразрывным пробелом это уже не число, а финтифлюшка :-) | |
47
- 03.09.2013 - 21:20
|
46-Зелёный тролль > Проснувшись? :D Код в (33) явно "восьмерочный", и реплика про лидирующие нули относилась к нему, ибо блок Если НЕ УчитыватьЛидирующиеНули Тогда ... КонецЕслисовершенно лишний, а к тебе - только в части неразрывного пробела. Поскольку твой код следовал за этим, "из УПП" :)) | |
| Интернет-форум Краснодарского края и Краснодара |