Author Topic: Считать число с экрана. Преобразование типов данных.  (Read 2861 times)

0 Members and 1 Guest are viewing this topic.

winwebber

  • Освоившийся
  • **
  • Posts: 46
    • View Profile
Есть число в браузере. Разделено запятой, для удобства чтения. Например 1,000,000
Я сего нахожу, копирую помещаю в буфер, чищу от запятых, получаю "1000000" но это всё ещё строка, я не могу проводить с ней никаких арифметических операций. Как ещё преобразоват в число. Или может есть какие-то другие способы считать число с браузера...но оно ведь может быть в разном формате. Не могу понять.
Может у кого есть идеи, буду признателен

winwebber

  • Освоившийся
  • **
  • Posts: 46
    • View Profile
Прочитал в хелпе,
int
Quote
Функция может использоваться для приведения типов данных. Позволяет представить строку как число.
Если вам нужно округлить число до заданной точности, см. функцию ROUND
Но чего-то нефурынкает, ладно ещё поиграюсь.

winwebber

  • Освоившийся
  • **
  • Posts: 46
    • View Profile
int работает
проблема была в лишних пробельных символах, а точнее в переводе строки.
Я просто более точно начал копировать, но возможно есть какой-то trim, который режет пробелы. Ну точнее пробелы порезать не сложно, а как убрать перевод строки? Может кому будет и полезно.

Axelenz

  • Освоившийся
  • **
  • Posts: 31
  • Парсинг сайтов, наполнение интернет-магазинов
    • View Profile
Хотя бы так:

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

Code: (clickermann) [Select]
TFWRITE("data.ini", FROMCLIP())
$data = TFREAD("data.ini", 1)
« Last Edit: January 18, 2019, 09:07:50 PM by Axelenz »
"Можно бесконечно смотреть на три вещи: как течёт вода, как горит огонь и как Clickermann работает вместо тебя..."

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
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

Лог:






winwebber

  • Освоившийся
  • **
  • Posts: 46
    • View Profile
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

Лог:

Спасибо, красиво.