Ruby для чтения и записи файлов - PullRequest
0 голосов
/ 27 октября 2018

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

Любая возможная помощь будет отличной.

def write(aFile, number)

  aFile.puts(number)
  index = 0
  while (index <= number)
   aFile.puts(index)
   index += 1
  end
end


def read(aFile)


  count = aFile.gets
  if (is_numeric?(count))
    count = count.to_i
  else
    count = 0
    puts "Error: first line of file is not a number"
  end

  index = 0
  while (count < index)
    line = aFile.gets
    puts "Line read: " + line
    index += 1
  end
end


def main
  aFile = File.new("mydata.txt", "w") 
  if aFile  
    write(aFile, 10)
    aFile.close
    aFile = File.new("mydata.txt", "r") 
    read(aFile)
    aFile.close
  else
    puts "Unable to open file to write or read!"
  end
end

def is_numeric?(obj)
  if /[^0-9]/.match(obj) == nil
    true
  end
  false
end

main

1 Ответ

0 голосов
/ 27 октября 2018

Пожалуйста, проверьте следующее,

count = aFile.gets
if (is_numeric?(count))
  count = count.to_i
else
  count = 0
  puts "Error: first line of file is not a number"
end

Когда вы читаете строки файла, вы всегда читаете строки в тексте / строке (даже числа внутри файлов).Таким образом, вы всегда в блоке else.

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