Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (3): [1] 2 3 »   

> Описание: Преобразование строки типа "-897.075" в число -897.075
Kibor
Отправлено: 17 Октября, 2013 - 21:42:22
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




formatsn служит для преобразования строк в которых записаны числа в натуральное число int или double.
Синтаксис:
formatsn("76765");
formatsn('7');
formatsn("-757.067");

int a=formatsn("76765");
messagebox (a+5);

Принимает string или char. Знаком дроби служит точка ( . ).
Возвращает int или double, который можно использовать в математических и других операциях.
В случае ошибки возвращает число -10011001
Ошибка возвращается если строка в параметре не может быть преобразована в число.
 
 Top
kunni
Отправлено: 15 Декабря, 2014 - 00:16:25
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2014  
Репутация: 2




Здравствуйте!
Копирую в буфер обмена число из ячейки Экселя (выделяю ячейку - копировать) - кибор не может преобразовать это число из буфера из string в int
CODE:
string y;
readclipboard(y);
int x=formatsn(y);

Хотя messagebox(y); выводит то самое число, которое я копировал.

Если скопировать не ячейку, а, например, выделив это число в строке ввода (в Экселе) или из любого текстового документа - все работает, но это очень неудобно.

Как победить этот момент? Нужно именно число из ячейки Экселя использовать дальше в скрипте как число и применять к нему математические формулы.

Заранее спасибо.

(Отредактировано автором: 15 Декабря, 2014 - 00:17:14)

 
 Top
Kibor
Отправлено: 15 Декабря, 2014 - 02:50:39
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




string y;
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?

целое или дробное число? знак дроби какой?
 
 Top
kunni
Отправлено: 16 Декабря, 2014 - 10:06:01
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2014  
Репутация: 2




 Kibor пишет:
string y;
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?

целое или дробное число? знак дроби какой?

Число целое. Показывает ошибку. Видимо, если копировать ячейку из Экселя, копируется что-то еще (я не программист, терминологией не владею).

При выполнении кода - ошибка
Скриншот (Отобразить)
 
 Top
Kibor
Отправлено: 16 Декабря, 2014 - 12:57:01
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




значит еще копируется что т.. пробел.. таб..
надо вставить с буфера куда т и посмотреть
 
 Top
kunni
Отправлено: 16 Декабря, 2014 - 17:19:11
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2014  
Репутация: 2




 Kibor пишет:
значит еще копируется что т.. пробел.. таб..
надо вставить с буфера куда т и посмотреть

Вы знаете, вы оказались правы: вставляется еще и перенос строки (ЭНТЕР):
CODE:
======================

CODE:
=========51515151
=============

Как победить?

(Отредактировано автором: 16 Декабря, 2014 - 17:19:39)

 
 Top
Kibor
Отправлено: 16 Декабря, 2014 - 19:39:30
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




перевести строку в массив char и убрать не нужный символ
 
 Top
Zireael
Отправлено: 12 Декабря, 2017 - 12:42:24
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
string a="";
messagebox(formatsn(a)); // должно вернуть -10011001
 
 Top
Dantes3000
Отправлено: 12 Декабря, 2017 - 13:17:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




string a=" ";
messagebox(formatsn(a)); // возвращает -10011001
 
 Top
Kibor
Отправлено: 12 Декабря, 2017 - 13:37:54
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Zireael ,
Ну пустая строка это 0. string заканчивается нулем. Так и преобразует.
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by