Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: winwebber on January 18, 2019, 08:23:36 PM

Title: Считать число с экрана. Преобразование типов данных.
Post by: winwebber on January 18, 2019, 08:23:36 PM
Есть число в браузере. Разделено запятой, для удобства чтения. Например 1,000,000
Я сего нахожу, копирую помещаю в буфер, чищу от запятых, получаю "1000000" но это всё ещё строка, я не могу проводить с ней никаких арифметических операций. Как ещё преобразоват в число. Или может есть какие-то другие способы считать число с браузера...но оно ведь может быть в разном формате. Не могу понять.
Может у кого есть идеи, буду признателен
Title: Re: Считать число с экрана. Преобразование типов данных.
Post by: winwebber on January 18, 2019, 08:29:54 PM
Прочитал в хелпе,
int
Quote
Функция может использоваться для приведения типов данных. Позволяет представить строку как число.
Если вам нужно округлить число до заданной точности, см. функцию ROUND
Но чего-то нефурынкает, ладно ещё поиграюсь.
Title: Re: Считать число с экрана. Преобразование типов данных.
Post by: winwebber on January 18, 2019, 08:53:42 PM
int работает
проблема была в лишних пробельных символах, а точнее в переводе строки.
Я просто более точно начал копировать, но возможно есть какой-то trim, который режет пробелы. Ну точнее пробелы порезать не сложно, а как убрать перевод строки? Может кому будет и полезно.
Title: Re: Считать число с экрана. Преобразование типов данных.
Post by: Axelenz on January 18, 2019, 09:03:26 PM
Хотя бы так:

Code: (clickermann) [Select]
STRWRITELN("data.ini", FROMCLIP())
$data = STRREADLN("data.ini", 1)

Code: (clickermann) [Select]
TFWRITE("data.ini", FROMCLIP())
$data = TFREAD("data.ini", 1)
Title: Re: Считать число с экрана. Преобразование типов данных.
Post by: dramster on January 18, 2019, 09:43:06 PM
int работает
проблема была в лишних пробельных символах, а точнее в переводе строки.
Я просто более точно начал копировать, но возможно есть какой-то trim, который режет пробелы. Ну точнее пробелы порезать не сложно, а как убрать перевод строки? Может кому будет и полезно.

Все намного проще. Фильтровать строку нужно не путем удаления символов указанных в маске, а путем удаления всех символов не указанных в маске. И кликерман при математических действиях со строкой, в которой записано число, автоматом как-то понимает что это число.

Для примера возьмем строку с запятыми, пробелами, и переводом строки, вот такую:
Code: [Select]
100, 12
         12 2

И попробуем поизвращаться с этой строкой:
Code: (clickermann) [Select]
$str = FROMCLIP()

print($str) //смотрим начальную строку

$str = strfilter($str, "0123456789", 1 ) //фильтр

print("наша строка-число - ",$str)  //смотрим фильтрованную строку

print("")
print("математика:")
print($str + 2)   //смотрим результаты математики
print($str / 2)
print($str * 2)

halt

Лог:
(https://i.imgur.com/RUdD4Kc.png)




Title: Re: Считать число с экрана. Преобразование типов данных.
Post by: winwebber on January 21, 2019, 10:42:58 AM
int работает
проблема была в лишних пробельных символах, а точнее в переводе строки.
Я просто более точно начал копировать, но возможно есть какой-то trim, который режет пробелы. Ну точнее пробелы порезать не сложно, а как убрать перевод строки? Может кому будет и полезно.

Все намного проще. Фильтровать строку нужно не путем удаления символов указанных в маске, а путем удаления всех символов не указанных в маске. И кликерман при математических действиях со строкой, в которой записано число, автоматом как-то понимает что это число.

Для примера возьмем строку с запятыми, пробелами, и переводом строки, вот такую:
Code: [Select]
100, 12
         12 2

И попробуем поизвращаться с этой строкой:
Code: (clickermann) [Select]
$str = FROMCLIP()

print($str) //смотрим начальную строку

$str = strfilter($str, "0123456789", 1 ) //фильтр

print("наша строка-число - ",$str)  //смотрим фильтрованную строку

print("")
print("математика:")
print($str + 2)   //смотрим результаты математики
print($str / 2)
print($str * 2)

halt

Лог:
(https://i.imgur.com/RUdD4Kc.png)
Спасибо, красиво.