Показано с 1 по 10 из 19

Тема: Скрипт архивирование на USB (панель СП3хх) и fseek

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Используйте SEEK_SET и смещение - именно так, как сделано в примере.
    Вообще, если руководствоваться примером - подобных проблем не будет.
    Здравствуйте!
    Тогда как мне пользуясь примером сделать дозапись в файл?
    Т.е. на флешке уже есть файл, записанный допустим в другой панели. Как БЫСТРО узнать конец файла? Считывать весь? А если там гигабайты?

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Кстати, задачи, которые обычно закрывают макросами (алгоритмы управления, архивы собственного формата, нестандартные протоколы и т.д.) гораздо проще решить с помощью новых СПК1хх:
    http://www.owen.ru/forum/showthread.php?t=29382
    СП315 была куплена пару месяцев назад. Обменяете?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,291

    По умолчанию

    Цитата Сообщение от -=Vovka=- Посмотреть сообщение
    Здравствуйте!
    Тогда как мне пользуясь примером сделать дозапись в файл?
    Т.е. на флешке уже есть файл, записанный допустим в другой панели. Как БЫСТРО узнать конец файла? Считывать весь? А если там гигабайты?
    Извините - не сумел догадаться, что конечная цель - определить размер файла.

    Для чтения SEEK_END работает.

    Код:
    #define BUFSIZE   	80
    #define LF		  	0x0A  
    #define CR			0x0D  
    
    WORD TD_Array[5];
    WORD kode, data;
    FILE 	*pFile;
    char 	buf[BUFSIZE];
    
    pFile = fopen("log.csv", "r");
    if(pFile) 
    {
      fseek(pFile, 0, SEEK_END);
      PSW[300]=ftell(pFile);		// size of file in bytes
      fclose(pFile); 
    }

    СП315 была куплена пару месяцев назад. Обменяете?
    Обсуждаемый вопрос - напишите на support@owen.ru, пожалуйста.

  3. #3

    По умолчанию

    Этот вариант заработал!
    Но тут появился дополнительный тормоз с двойным открытием файла: сначала на чтение, потом на запись
    Последний раз редактировалось -=Vovka=-; 05.12.2018 в 09:21.

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,291

    По умолчанию

    Цитата Сообщение от -=Vovka=- Посмотреть сообщение
    Этот вариант заработал!
    Но тут появился дополнительный тормоз с двойным открытием файла: сначала на чтение, потом на запись
    Я правильно понимаю, что вы успеваете вытаскивать/вставлять новые флешки несколько раз в секунду?
    Потому что в других ситуациях какие-либо тормоза из-за двух операций с файлом вместо одной сложно будет заметить.

    Или закрыл файл и можно флешку вытаскивать?
    Да, именно так.

  5. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Я правильно понимаю, что вы успеваете вытаскивать/вставлять новые флешки несколько раз в секунду?
    Потому что в других ситуациях какие-либо тормоза из-за двух операций с файлом вместо одной сложно будет заметить.
    Да, именно так.
    Мне интересен сам механизм закрытия файла: ведь на флешке может быть много файлов, да и со временем может притормаживать.
    Так вот, закрытия файла гарантирует физическую запись на флешку или как в Виндовс есть буферизация с отложенной записью и "Безопасное извлечение устройства"?

  6. #6

    По умолчанию

    Согласен, но хотелось бы "железобетонного" решения....

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,291

    По умолчанию

    Цитата Сообщение от -=Vovka=- Посмотреть сообщение
    Согласен, но хотелось бы "железобетонного" решения....
    В принципе, можно после записи опять проверять размер файла и если он увеличился на размер записанного буфера - то делать вывод об успешной записи в файл.
    Но, опять-таки, это дополнительная операция.

  8. #8

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    В принципе, можно после записи опять проверять размер файла и если он увеличился на размер записанного буфера - то делать вывод об успешной записи в файл.
    По моему тут глубже надо смотреть: на флешку мы послали данные, а вот она может притормозить и тогда если мы ее выдернули, то данные могут не успеть записаться.
    Может есть механизм узнать, что контроллер флешки закончил все операции?

Похожие темы

  1. Скрипт
    от BSA в разделе Master SCADA 3
    Ответов: 26
    Последнее сообщение: 04.04.2019, 13:23
  2. Скрипт архивирование на USB (панель СП3хх)
    от akphantom в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 30.11.2018, 07:24
  3. Панель СП3хх
    от Р.Александр в разделе Панели оператора (HMI)
    Ответов: 20
    Последнее сообщение: 16.08.2018, 19:28
  4. Экон134 и панель сп3хх
    от Aleksandr в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 17.03.2016, 08:53
  5. С-скрипт документация
    от Falvik в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 18.03.2014, 11:56

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •