alfacentavra
alfacentavra личный блог
24 апреля 2024, 11:44

Qlua: статус файла.

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

Для проверки наличия файла я использую функцию, которую сам когда-то нашел в сети, она возвращает размер файла в байтах, если файл существует и nil если не найдет его.

Qlua: статус файла.

Проверить занят ли файл, а также проверить что он не пустой можно следующей функцией:
Qlua: статус файла.

Все данные с файла C:\files\test.csv сохраняются в массив string_file, который будет глобальным и его можно использовать далее в main, например.

Основная часть программы:
Qlua: статус файла.


Если файл C:\files\test.csv существует, то скрипт выведет размер файла.
Если открыт (например в excel), то укажет, что файл занят.
Если будет пустым, то получим соответствующий статус.

Скрипт: github.com/morefinances/qlua/blob/main/status_file.lua
23 Комментария
  • DrManhattan
    24 апреля 2024, 11:47
    что-то какие кракозябры в коде на гите.
    Что за древние кодировки?
      • BITE4SAVE
        25 апреля 2024, 10:30
        alfacentavra, спасибо!
        Очень полезная инфа,
        прямо пазл сложился при работе с занятыми файлами!
  • Олег Леликов
    25 апреля 2024, 14:11
    alfacentavra, здравствуйте. Огромное спасибо. Есть несколько вопросов.
    В первой функции запрос типа файла, это его содержимого или просто его названия?
    И в первой и во второй функции происходит вызов самой себя? Не произойдёт ли зацикливание файла?
    Не достаточно ли будет после открытия файла провести проверку #fale, чтобы определить его размер?
    Если во второй функции открываем методом «а+» не произойдёт ли стирание содержимого файла?
  • Олег
    25 апреля 2024, 16:17
    Спасибо. Да, по «а+» — дополнение, по «w» — стирание и новая запись.
    В первом вопросе я имел ввиду необходимость данного условия: if type(file) == «string» then
  • Cubigator
    25 апреля 2024, 18:23
    -------------------------------------------------------------------------------
    ------------------------проверка существования файла-----------------------
    -------------------------------------------------------------------------------
    function file_exists(name)
       local f = io.open(name, «r»)
       return f ~= nil and io.close(f)
    end

    короче Склифософский©

      • Cubigator
        25 апреля 2024, 19:45
        alfacentavra, Скажите пожалуйста какими способами вы пользуетесь для тестирования торговых стратегий?
          • Cubigator
            26 апреля 2024, 16:54
            alfacentavra, Как раз с визуализацией в pyton у меня возникли проблемы. Я не успел разобраться с matplotlib (Вы об этой библиотеке говорили?) когда мой амер брокер в 20 году забанил все аки из России, и интерес у меня к этому пропал. Зато в Quik очень просто визуализировать сделки. Одна проблема ограничение на 65к свечек. Приходится тестировать кусками. И еще отсутствие исторических данных для Quik. (найти нигде не могу)
            Сегодняшний пример визуализации работы робота в Quik

              • Cubigator
                26 апреля 2024, 18:23
                alfacentavra, Ограничение 3000 свечей в графике Quik было много лет назад. Сейчас 65000, но и этого мало. На минутка это примерно три месяца.
                  • Cubigator
                    26 апреля 2024, 19:26
                    alfacentavra, нет загрузить с сервера больше 3к нельзя, только накопленная собственноручно история может дать до 65к свечей. И что интересно, ни у брокера, ни у разработчиков Quik исторических данных нет.
                      • Cubigator
                        26 апреля 2024, 20:22
                        alfacentavra, Что есть? Файлы в формате TXT,CSV? Или dat файлы в формате Quik?
  • Олег Леликов
    26 апреля 2024, 01:59
    В mql5 классно, проход теста последовательно построчно по всему коду с переходами в другие файлы и функции. Здесь же, после отказа от декоды, наверное, ничего нет. Приходится переодически message ставить для хоть какого-то контроля хода.
      • Олег Леликов
        26 апреля 2024, 15:50
        alfacentavra, полностью с вами согласен. Разработчикам почему-то оказывается не нужным програмное обеспечение quik.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн