Имя: Пароль:
1C
 
А как узнать что в строке записано не-число?
0 nachinajushij
 
13.10.04
15:46
А как узнать что в строке записано не-число?
1 Волшебник
 
13.10.04
15:46
Попробуй преобразовать в число, если не получится, то не-число.
2 Волшебник
 
13.10.04
15:46
(1)+ Метод Рупора.
3 nachinajushij
 
13.10.04
15:47
Не получится - это исключение или возврат 0
4 Gary
 
13.10.04
15:48
см.уроки из книги "Программирование на Си. Кернига, Ричи" :-), хотя вполне еще где-нибудь подобное есть, например, на Перле. Я имею в виду алгоритмы функций IsDigit, IsCharacter.
5 Волшебник
 
13.10.04
15:49
(3) В 8.0 исключение. В 7.7 - не помню.
6 ОбезьянаС Гранатой
 
13.10.04
15:49
(1)+(2) "000195" согласно твоему методу число или нет?
7 ОбезьянаС Гранатой
 
13.10.04
15:50
+(6)то есть, методу Рупора, конечно...
8 wolk
 
13.10.04
15:54
(0) - очень просто

Если А = Число(А) Тогда
   Возврат "Да, это есть число";
Иначе
   Возврат "Нет, нихрена это не число";
КонецЕсли;
9 nachinajushij
 
13.10.04
15:54
(3) - Никто не в курсе? В доке об это ни слова!
10 wolk
 
13.10.04
15:54
(8+) - разуммется это в попытке
11 nachinajushij
 
13.10.04
15:55
(8) - Гениально!
12 ОбезьянаС Гранатой
 
13.10.04
15:55
(8) что курим??
13 nachinajushij
 
13.10.04
15:56
(10) Так все-таки в 7.7 Число() исключение выбрасывает?
14 wolk
 
13.10.04
15:58
(13) - если (8) будет внутри попытки, то если А - не число, попадёшь в исключение и делай чё надо.
15 wolk
 
13.10.04
15:58
(12) - а что плохого в предельно простом решении?
16 ОбезьянаС Гранатой
 
13.10.04
15:59
(15)прочитай 0:
дано: строка, то есть на входе "А554", "427" и прочее...
на выходе мы должны выяснить, число ли там...
17 nachinajushij
 
13.10.04
16:00
То тогда Число() не подходит. Т.к. я уже сижу внутри транзакции :-(
18 wolk
 
13.10.04
16:01
(16) - сорри, невнимательно (0) читал. Тогда так:
Б = Число(А);
Если Б <> 0 Тогда
   ...........
КонецЕсли;
19 nachinajushij
 
13.10.04
16:01
Вся байда нужна для универсальности зарузки кодов в справочник (Код справочника 1с - текстовый / числовой), загружаемый код - текстовый / числовой
20 ОбезьянаС Гранатой
 
13.10.04
16:02
(17) я правильно изложила задачу в (16)?
тогда при чем тут транзакция, исключение?
21 nachinajushij
 
13.10.04
16:02
Исходя из (18) Число не выбрасывает исключение!
22 ОбезьянаС Гранатой
 
13.10.04
16:03
(18) а если там "427pit"? то это число?
23 Crew
 
13.10.04
16:26
КодСимвола тебе поможет
24 Барбариска
 
13.10.04
16:27
Забавно )))
Вообще, проверка "на число" равносильна посимвольной проверке того, что каждый символ - это либо цифра, либо точка, причем точки не более 1 штуки.
например, так:
Стр=ИсходнаяСрока;
Для сч=0 по 9 Цикл Стр=СтрЗаменить(Стр,Строка(Сч),"") КонецЦикла;
Если (Стр="") или (Стр=".") Тогда ... Иначе ... КонецЕсли;
25 Crew
 
13.10.04
16:28
(23)
+ соответственно разбор строки по символам и попадание в диапазон от 48(0) до 57(9). Если есть символ с кодом не из диапазона, тогда не число.
26 NS
 
13.10.04
16:29
Минус еще может быть....
27 Барбариска
 
13.10.04
16:30
(26) точно, про минус забыла! )))
В задумчивости - что еще могла забыть?
28 GrayT
 
13.10.04
16:33
Не вникая СокрЛП(Стр)=СокрЛП(Строка(Число(Стр))) ==> Число. Фиг его знает - пробовать надо
29 Последний Будда
 
13.10.04
16:33
Все можно сделать одним оператором.
30 Барбариска
 
13.10.04
16:34
(28) - нет, так не пойдет - попробуй например 0.0010000
31 Последний Будда
 
13.10.04
16:34
Или тема ветки - просто прикол?
32 ОбезьянаС Гранатой
 
13.10.04
16:59
(24)"1 000.00" -число?
з.ы. на самом деле, это (0) должен однозначно сформулировать, что такое "не число"
вот тогда и будем решать задачу...
и при чем тут исключение и транзакция???
33 nachinajushij
 
13.10.04
17:02
Число - это строка, корректно интерпретируемая функцией Число().
34 nachinajushij
 
13.10.04
17:05
Согласно (5) - в 8.0 функция Число() может вызвать исключение, в результате которой отменится транзакция (или я не прав?), что нам не подходит
35 Барбариска
 
13.10.04
17:05
(32) Число("1 000.00")=1 - так что только на плюсики/минусики в первой позиции можно согласиться в дополнение к цифрам и точке.
36 NS
 
13.10.04
17:13
Ну если это код... то какие проблемы? (19)
37 Последний Будда
 
13.10.04
17:23
Час работы 1с-ника стоит не меньше рубля. Теперь посчитайте насколько (0) нагрел конкурентов.
38 Archon
 
13.10.04
18:54
(37) Те, кто работает, попусту не болтают. А это по сути -- офф. ИМХО.
39 G-Re
 
14.10.04
09:58
При предложенной постановке задачи, можно(?) допустить, что на входе нет нулей в любых исполнениях(0, 0.000, -0000.00, +00.000 и тд), поэтому проще всего
Если Число(Строка)= 0 Тогда
      // не число
Иначе
      // число
КонецЕсли;