formatsn служит для преобразования строк в которых записаны числа в натуральное число int или double.
Синтаксис:
formatsn("76765");
formatsn('7');
formatsn("-757.067");
int a=formatsn("76765");
messagebox (a+5);
Принимает string или char. Знаком дроби служит точка ( . ).
Возвращает int или double, который можно использовать в математических и других операциях.
В случае ошибки возвращает число -10011001
Ошибка возвращается если строка в параметре не может быть преобразована в число.
1. Kibor - 17 Октября, 2013 - 13:42:22 - перейти к сообщению
2. kunni - 14 Декабря, 2014 - 16:16:25 - перейти к сообщению
Здравствуйте!
Копирую в буфер обмена число из ячейки Экселя (выделяю ячейку - копировать) - кибор не может преобразовать это число из буфера из string в int
Хотя messagebox(y); выводит то самое число, которое я копировал.
Если скопировать не ячейку, а, например, выделив это число в строке ввода (в Экселе) или из любого текстового документа - все работает, но это очень неудобно.
Как победить этот момент? Нужно именно число из ячейки Экселя использовать дальше в скрипте как число и применять к нему математические формулы.
Заранее спасибо.
Копирую в буфер обмена число из ячейки Экселя (выделяю ячейку - копировать) - кибор не может преобразовать это число из буфера из string в int
CODE:
string y;
readclipboard(y);
int x=formatsn(y);
readclipboard(y);
int x=formatsn(y);
Хотя messagebox(y); выводит то самое число, которое я копировал.
Если скопировать не ячейку, а, например, выделив это число в строке ввода (в Экселе) или из любого текстового документа - все работает, но это очень неудобно.
Как победить этот момент? Нужно именно число из ячейки Экселя использовать дальше в скрипте как число и применять к нему математические формулы.
Заранее спасибо.
3. Kibor - 14 Декабря, 2014 - 18:50:39 - перейти к сообщению
string y;
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?
целое или дробное число? знак дроби какой?
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?
целое или дробное число? знак дроби какой?
4. kunni - 16 Декабря, 2014 - 02:06:01 - перейти к сообщению
Kibor пишет:
string y;
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?
целое или дробное число? знак дроби какой?
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?
целое или дробное число? знак дроби какой?
Число целое. Показывает ошибку. Видимо, если копировать ячейку из Экселя, копируется что-то еще (я не программист, терминологией не владею).
При выполнении кода - ошибка
Скриншот (Отобразить)
5. Kibor - 16 Декабря, 2014 - 04:57:01 - перейти к сообщению
значит еще копируется что т.. пробел.. таб..
надо вставить с буфера куда т и посмотреть
надо вставить с буфера куда т и посмотреть
6. kunni - 16 Декабря, 2014 - 09:19:11 - перейти к сообщению
Kibor пишет:
значит еще копируется что т.. пробел.. таб..
надо вставить с буфера куда т и посмотреть
надо вставить с буфера куда т и посмотреть
Вы знаете, вы оказались правы: вставляется еще и перенос строки (ЭНТЕР):
CODE:
======================
CODE:
=========51515151
=============
=============
Как победить?
7. Kibor - 16 Декабря, 2014 - 11:39:30 - перейти к сообщению
перевести строку в массив char и убрать не нужный символ
8. Zireael - 12 Декабря, 2017 - 04:42:24 - перейти к сообщению
CODE:
string a="";
messagebox(formatsn(a)); // должно вернуть -10011001
messagebox(formatsn(a)); // должно вернуть -10011001
9. Dantes3000 - 12 Декабря, 2017 - 05:17:47 - перейти к сообщению
string a=" ";
messagebox(formatsn(a)); // возвращает -10011001
messagebox(formatsn(a)); // возвращает -10011001
10. Kibor - 12 Декабря, 2017 - 05:37:54 - перейти к сообщению
Zireael ,
Ну пустая строка это 0. string заканчивается нулем. Так и преобразует.
Ну пустая строка это 0. string заканчивается нулем. Так и преобразует.