Перейти к публикации

В ближайшее время постараюсь разобраться с картой сервера/ЛК/бб кодами

Внимание, с 14 февраля до 20 февраля могут проходить работы на сервере, где также находится лаунчсервер. В связи с этим авторизация в лаунчере может не работать

  • 0
XyPMA_

Как получить число через io.read()?

Вопрос

Знаю, такая тема уже была, но мне это не подходит.

Дело в том, что команда modem.open() принимает только цифровые значения, а спомощью io.read() получаем string.

 

Вот это кусочек кода:

 

local hz = io.read()

modem.open(hz)

 

При запуске выдает ошибку о плохом аргументе.

Как это можно обойти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 ответа на этот вопрос

Рекомендованные сообщения

  • 0

tonumber(arg) — конвертирует аргумент arg в число; вернёт nil, если конвертация не возможна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

local n = tonumber(io.read())
=============================
local k = io.read()
local n = tonumber(k)
--я бы советовал ещё тогда нужно делать проверку
if ~n then
print("Не удалось преобразовать переменную k: ".k." в число.")
os.exit()
end
==============================
local n = io.read()
local k = n + 0
Изменено пользователем Zed
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

 Если тебе надо передать значение hz с одного конца карты в другой(или может - только в соседнюю комнату,или ещё куда ты там хочешь).

То алгоритм, думаю, может выглядеть так :

 

1. Ловим строковую переменную.

2. Преобразуем все символы в числа в соответствии с UTF-8(ASCII, КОИ-8 или что там у тебя :) )

3. Пересылаем.

4. Производим обратное преобразование.

 

 

P.S. И никаких тебе ... "плохих аргументов".

Изменено пользователем davial

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×