К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Попытка -Исключение

Гость
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) явно "восьмерочный", и реплика про лидирующие нули относилась к нему, ибо блок Если НЕ УчитыватьЛидирующиеНули Тогда ... КонецЕслисовершенно лишний, а к тебе - только в части неразрывного пробела. Поскольку твой код следовал за этим, "из УПП" :))


К списку вопросов






Copyright ©, Все права защищены