![]() |
![]() |
![]() |
|
Обработка ошибки преобразования Строки в Число? | ☑ | ||
---|---|---|---|---|
0
Bobroff
27.07.06
✎
16:30
|
Есть функция преобразования строки в число, например: ПрЧисло=Число(ПрСтрока). Если ПрСтрока содержить числовые символы, то всё ОК. Но, если ПрСтрока содержит другие символы, то вылезает ошибка. Как до преобразования Число(ПрСтрока) проверить ПрСтрока на наличие только чиловых символов?
Заранее, спасибо... |
|||
1
ТелепатБот
гуру
27.07.06
✎
16:30
|
||||
2
Bobroff
27.07.06
✎
16:30
|
(1) - не то...
|
|||
3
MikleV
27.07.06
✎
16:33
|
самые дебильные варианты.. 1.попытка- искючение..
2. сверка по кодам символов. |
|||
4
х86
27.07.06
✎
16:33
|
(3)+
удали все числовые символы, и если СокрЛП(Результат) <> "" тогда .... |
|||
5
marvak
27.07.06
✎
16:35
|
можно так
Попытка мЧисло = Число(Реквизит1); Исключение СообщитьОбОшибке("!!!"); возврат; КонецПопытки; Сообщить(мЧисло); |
|||
6
Bobroff
27.07.06
✎
16:46
|
(3) - а почему попытка- искючение плохой вариант? попробовал, работает...
|
|||
7
MikleV
27.07.06
✎
16:47
|
(6) они оба дебильные потому что некрасивые)) наверняка есть решение лучше.. если хорошо подумать.. но мине чего то уже не думается.
|
|||
8
Andrey_spb
27.07.06
✎
16:52
|
Например поиск по маске...
|
|||
9
marvak
27.07.06
✎
16:53
|
(7) в чем некрасивость? коротко, ясно.
кстати, имхо других вариантов, кроме этих двух и нет. не надо искать замороченных решений простых задач |
|||
10
Bobroff
27.07.06
✎
16:54
|
Написал вот так:
Попытка ПроверкаЧисло=Число(ЭлементыФормы.Номер.Значение); Исключение Предупреждение("Номер врача содержит недопустимые символы", 0, "ОШИБКА"); Возврат; КонецПопытки; Всё ОК. Только как строку "Номер врача содержит недопустимые символы" разбить, чтобы она выводилась в две строки, а не в одну? |
|||
11
Andrey_spb
27.07.06
✎
16:55
|
Символы.ВК
|
|||
12
marvak
27.07.06
✎
16:56
|
(10)
Стр = "Номер врача содержит |недопустимые символы"; Предупреждение(Стр); |
|||
13
Andrey_spb
27.07.06
✎
16:57
|
(12) или так...
|
|||
14
х86
27.07.06
✎
16:58
|
(0) старайся такого не допускать. Пиши так чтоб у тебя переменная была или число или строка
|
|||
15
Bobroff
27.07.06
✎
16:58
|
...thanks...
|
|||
16
Bobroff
27.07.06
✎
16:59
|
(14) не получаеться, т.к. число в виде строки передаёться в Запрос в Параметр ПОДОБНО для сравнения...
|
|||
17
Andrey_spb
27.07.06
✎
17:02
|
Вот ещё вариант интересный:
RegExp=Новый COMОбъект("VBScript.RegExp"); RegExp.MultiLine=Ложь; RegExp.Global=Ложь; RegExp.IgnoreCase=Истина; RegExp.Pattern="[^0-9]"; Если RegExp.Test(Строка) Тогда // не число КонецЕсли; |
|||
18
Bobroff
27.07.06
✎
17:05
|
(17) - это для меня пока сложновато... не изучал ещё Com-Объекты...
|
|||
19
Andrey_spb
27.07.06
✎
17:08
|
(18) напрасно... много интересного...
|
|||
20
MikleV
27.07.06
✎
17:10
|
(17) круть.)
|
|||
21
Bobroff
27.07.06
✎
17:12
|
(19) - скоро дойду, пока просто не требуеться...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |