Возникли проблемы с lua строковым генератором - PullRequest
0 голосов
/ 18 апреля 2020

Хорошо, я буду честен, я ничего не знаю о lua, лучшее, что я могу сделать, это скопировать некоторые вещи и изменить их, когда мне это нужно. В настоящее время у меня возникает проблема, когда консоль отладки сообщает мне следующее:

lua: [string "<eval>"]:41: bad argument #1 to 'random' (interval is empty)
stack traceback:
[C]: in function 'random'
[string "<eval>"]:41: in main chunk

Это мой код (я знаю, что он не оптимизирован):

local x = math.random(1,1000000000)
local keyLength = 0
local lowerCase = ""
local upperCase = ""
local numbers = ""

local characterSet = ""
local output = ""

repeat
  math.randomseed(x * os.time())

  print('Length?')
  resp1 = io.read():lower()

  print('Lower case?')
  resp2 = io.read():lower()

  print('Upper case?')
  resp3 = io.read():lower()

  print('Numbers?')
  resp4 = io.read():lower()

  if resp1 ~= '0' or nil then
    keyLength = resp1
  elseif resp2 == 'yes' then
    lowerCase = "abcdefghijklmnopqrstuvwxyz"
    characterSet = characterSet..lowerCase
  elseif resp3 == 'yes' then
    upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    characterSet = characterSet..upperCase
  elseif resp4 == 'yes' then
    numbers = "0123456789"
    characterSet = characterSet..numbers
  end

  for   i = 1, keyLength do
      local rand = math.random(#characterSet)
      output = output.. string.sub(characterSet, rand, rand)
  end

  print("Code is " .. output)
  print("Repeat?")
  resp5 = io.read():lower()

  if resp5 == 'yes' then
    for i = 1, keyLength do
        local rand = math.random(#characterSet)
        output = output.. string.sub(characterSet, rand, rand)
    end

    print("Code is ".. output)
  elseif resp5 == 'no' then
    lowerCase = "abcdefghijklmnopqrstuvwxyz"
    upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    numbers = "0123456789"
    keyLength = 0
  else
    print("Please enter 'Yes' or 'No'")
  end
until false

Я считаю, что проблема единственной проблемой является пустая строка characterSet, так как она работала раньше, за исключением того, что мне приходилось исправлять проблему с неправильной настройкой параметров.

Правка: я нашел способ ее решить; фига.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...