Author Topic: Ошибка чтения TFREAD  (Read 1304 times)

0 Members and 1 Guest are viewing this topic.

trillian2018

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Ошибка чтения TFREAD
« on: July 01, 2022, 10:15:45 AM »
Здравствуйте. У меня есть скрипт, работает давно и исправно. НО иногда, по совершенно непонятной причине внезапно выдает ошибку чтения с текстового файла. TFREAD ($adress, $a) - обе переменные известны, принтуются до вызова функции, и в общем все работает по несколько циклов в день, неделями работает без сбоев, но в какой-то момент происходит такая ошибка. Кто-нибуть сталкивался с подобным?

Иван_Васильевич

  • Освоившийся
  • **
  • Posts: 72
    • View Profile
Re: Ошибка чтения TFREAD
« Reply #1 on: July 01, 2022, 12:19:05 PM »
скрипт в студию и содержимое текстового файла, возможно в него попадают нечитаемые символы или обращаетесь к несуществующей строке и т.д.

trillian2018

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Re: Ошибка чтения TFREAD
« Reply #2 on: July 01, 2022, 12:29:28 PM »
Нет, нечитаемых символов там нет, строка существующая. В том-то и дело, что скрипт функционирует без ошибок, но в какой-то момент сама функция на ровном месте выдает ошибку чтения. Установлен на виртуальной машине с общим сетевым диском. Есть предположение, что в этот момент как-то пропадает доступ к сетевому диску и поэтому происходит сбой, но вот как поймать этот момент и убедиться в этом, ума не приложу. В виндовс 10 есть логи отключения сетевых дисков, кто-нибудь знает?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ошибка чтения TFREAD
« Reply #3 on: July 01, 2022, 02:14:03 PM »
Установлен на виртуальной машине с общим сетевым диском.
Такая ошибка ещё бывает, если файл занят на запись. При чём он может быть занят как внешней программой, так и самим кликером.

Ловил кликером такую ошибку если в скрипте перебираем строки файла и пишем в них изменения. Если задержек нет, через рандом 30-50 строк чтение вызывается когда запись ещё не завершилась.
Наверно зависит ещё от объёма записываемых данных и от загруженности компа в этот момент.
Добавление задержки после записи решает проблему.