Авторизация  
Andrey26780

Filesystem API

Recommended Posts

Здравствуйте, гуру программирования, модераторы, игроки, гости. (нужное подчеркнуть)

 

Стало мне вдруг надо написать программу, в коде которой требовалось бы прочитать файл. Использую такой код:

sl = fs.open("бла-бла/бла-бла.txt", 'r')
str = ""
if(sl == nil) then
  gpu.setForeground(0xFF0000)
  term.write("FAIL: Не получается открыть файл для чтения.")
  gpu.setForeground(0xFFFFFF)
  while true do end
end
for symb in sl:read(1) do
  if(symb == '\n') then
    str = str + symb
  end
end

Вот только незадача:

/mns.lua:28: attempt to call a field 'read' (a nil value)
stack traceback:
	/mns.lua:28: in main chunk
	(...tail calls...)

Почему так? ведь

sl

не равен

nil

а соответственно откуда взяться ошибке

a nil value

? Прошу сильно не кидать в меня помидорами,так как не очень знаком с Lua. Лучше другие языки.

 

 

ЗЫ: после того, что я привык, что в других языках для обозначения

выражение1 не равно выражение2

надо писать

vyrasheniye1 != vyrasheniye2

а в Lua - 

not(vyrasheniye1 == vyrasheniye2)

Из-за этого я минут 15 не мог понять, в чём ошибка. Или есть что-то вроде !=, но пишется по-другому?

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация