С Новым годом! Форум программистов, компьютерный форум, киберфорум
Lua
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/79: Рейтинг темы: голосов - 79, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 23

Ошибка: attempt to index global 'file' (a nil value)

30.03.2021, 23:17. Показов 18006. Ответов 7
Метки lua (Все метки)

Студворк — интернет-сервис помощи студентам
Lua
1
2
3
4
file = io.open(getGameDirectory().."//moonloader//log.txt", "a")
file = io.open(getGameDirectory().."//moonloader//log.txt", "a")
file:write(text3.."\n")
file:close()
Скрипт работает стабильно. Но через какое либо время вылетает с такой ошибкой: attempt to index global 'file' (a nil value)

Я ещё понимаю он сразу вылетал, но он примерно 1-2 минуты работает нормально а потом вылет. Подскажите как исправить.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2021, 23:17
Ответы с готовыми решениями:

Ошибка attempt to index global 'gg' (a nil value)
Здрасте. Не могу понять, почему не запускается. Поможете исправить? gg.toast('School of chaos HACK') gg.toast('Made by Hakko78') ...

Attempt to call a nil value
Здравствуйте, пробую освоить Луа, делаю все по уроку, выдает такое сообщение: lua: main.lua:23: attempt to call a nil value (field...

attempt to index a number value
Cтолкнулся с такой странной ошибкой в строке 131 (local x = infield_x(p1.x+p1.move_x)): untitled.lua:131: attempt to index a number value....

7
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
30.03.2021, 23:24
Цитата Сообщение от frilovsky Посмотреть сообщение
file = io.open(getGameDirectory().."//moonloader//log.txt", "a")
file = io.open(getGameDirectory().."//moonloader//log.txt", "a")
Зачем открывать файл дважды?
2
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 23
31.03.2021, 08:26  [ТС]
Случайно второй раз написал. Так то его нет
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
31.03.2021, 09:08
Попробуйте заменить на:

Code
1
file = io.open(getGameDirectory().."/moonloader/log.txt", "a")
1
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 23
31.03.2021, 12:30  [ТС]
Не помогло attempt to index global 'file' (a nil value)
Ошибка вылазит тут file:write(text3.."\n")
0
Модератор
 Аватар для Curry
5153 / 3465 / 536
Регистрация: 01.06.2013
Сообщений: 7,527
Записей в блоге: 9
31.03.2021, 20:43
Цитата Сообщение от frilovsky Посмотреть сообщение
Скрипт работает стабильно.
Однако, это же не весь скрипт. Потому что
Цитата Сообщение от frilovsky Посмотреть сообщение
через какое либо время вылетает с такой ошибкой: attempt to index global 'file' (a nil value)
Я ещё понимаю он сразу вылетал, но он примерно 1-2 минуты работает нормально а потом вылет.
То есть, либо в скрипте этот файл открывается в цикле, то ли сам скрипт что то вызывает много раз.
Отсюда, может быть и так, что скрипт ещё не закрыл файл, а его уже и вызвали снова, и новый экземпляр скрипта пытается открыть уже открытый файл.
Или (анти)вирус файлом интересуется, захватывает иногда.
Функция open возвращает ошибку, можно же её посмотреть по принципу
Lua
1
2
3
4
5
6
7
local file,ferr=io.open("output.txt", "a")
if ferr  ~= nil then
  print("file open error : " .. ferr)
else
  print("file open is ok")
  file:close()
end
0
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 23
31.03.2021, 21:33  [ТС]
Вы правы на счет цикла. Работает в цикле раз в 5 сек заполняет txt.
Используя ваш код, я переделал под себя но к сожалению снова та же ошибка.

C
1
2
3
4
5
6
7
8
9
10
11
local file,ferr=io.open(getGameDirectory().."/moonloader/log.txt", "a")
        if ferr  ~= nil then
          file,ferr=io.open(getGameDirectory().."/moonloader/log.txt", "a")
          [U]file:write(text.."\n")[/U]
          file:close()
        else
          file:close()
          file,ferr=io.open(getGameDirectory().."/moonloader/log.txt", "a")
          file:write(text.."\n")
          file:close()
        end
0
Модератор
 Аватар для Curry
5153 / 3465 / 536
Регистрация: 01.06.2013
Сообщений: 7,527
Записей в блоге: 9
31.03.2021, 21:46
Лучший ответ Сообщение было отмечено frilovsky как решение

Решение

Цитата Сообщение от frilovsky Посмотреть сообщение
Используя ваш код, я переделал под себя
Зачем же, когда возникает ошибка, снова пытаться открывать файл. Посмотрите что у меня после if ferr ~= nil then, и что у вас.

Добавлено через 57 секунд
А в ветке else не надо закрывать и открывать файл заново. Там file не nil.

Добавлено через 1 минуту
Lua
1
2
3
4
5
6
7
local file,ferr=io.open(getGameDirectory().."/moonloader/log.txt", "a")
if ferr ~= nil then
    print("file open error : " .. ferr) -- или, куда там вы можете вывести сообщение об ошибке
else
    file:write(text.."\n")
    file:close()
end
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2021, 21:46
Помогаю со студенческими работами здесь

Соообщение # error "Attempt to include more than one <avr/ioXXX.h> file
Помогите разобраться где косяк :( Atmel Studio 7 C++ выдает сообщения ... , в том числе: # error &quot;Attempt to include more than...

Inserting an index entry into index $0 of file 25
Inserting an index entry into index $0 of file 25 Это сообщение появляется при проверке жесткого диска. Когда загружена винда при...

ошибка Parse error: syntax error, unexpected end of file in E:\OpenServer\domains\test.ru\index.php on line 23
&lt;!DOCTYPE html&gt; &lt;html lang=&quot;ru&quot;&gt; &lt;head&gt; &lt;title&gt;Калькулятор&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;form name=&quot;myform&quot; action=&quot;index.php&quot;...

Ошибка Notice: Undefined index: user in C:\Server\data\htdocs\index.ph p on line 40
Помогите решить

Ошибка: undefined method `each' for nil:NilClass
class User &lt; ActiveRecord::Base belongs_to :course end Выдает ошибку на строке: &lt;% @courses.each do |c| %&gt; Код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru