Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19

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

  1. #1

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

    Здравствуйте!
    Что-то не пойму, почему не работает функция установки указателя файла на конец файла?
    Все время перезаписывает файл. Вот код:
    Код:
    #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", "w");
    if(pFile) {
      fseek(pFile, 0, SEEK_END);
      snprintf(buf, (BUFSIZE-1), "%02d.%02d.%04d;%02d:%02d;%d;%d;%c%c",  PSW[304],PSW[303],PSW[302], PSW[300],PSW[301], kode, data, CR, LF);
      fwrite(buf, 1, strlen(buf), pFile);
      fclose(pFile);
    }

  2. #2

    По умолчанию

    -- Замените "w" на "a" и будет вам счастье. --

    Эх, счастья не будет -- "a" не поддерживается.
    Последний раз редактировалось Владимир Ситников; 04.12.2018 в 16:22.

  3. #3

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Замените "w" на "a" и будет вам счастье.
    Вот из описания для примера "16_Архивирование с помощью макросов"
    Screenshot_2.jpg

  4. #4

    По умолчанию

    Вот исходник из примера, правда тему почему-то закрыли: http://www.owen.ru/forum/showthread.php?t=29882

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,477

    По умолчанию

    Цитата Сообщение от -=Vovka=- Посмотреть сообщение
    Что-то не пойму, почему не работает функция установки указателя файла на конец файла?
    Все время перезаписывает файл
    Вот исходник из примера, правда тему почему-то закрыли: http://www.owen.ru/forum/showthread.php?t=29882
    Вот, что написано в википедии по поводу режима 'w' https://ru.wikipedia.org/wiki/%D0%A4...5_%D0%A1%D0%B8
    открывает для записи (создаёт файл в случае его отсутствия). Удаляет содержимое и перезаписывает файл.
    ЗЫ.
    И наконец, если файл открывается для операций чтения/ записи, то он не стирается, если он уже существует, а если такого файла нет, он создается.
    Последний раз редактировалось petera; 04.12.2018 в 17:41.
    26 лет деятельности в области промышленной безопасности

  6. #6

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    И наконец, если файл открывается для операций чтения/ записи, то он не стирается, если он уже существует, а если такого файла нет, он создается.
    Wikipedia тут бессильна.

    ОВЕН написали, что "режим a, a+ не поддерживается".
    Лучше бы написали какой поддерживается.

    Конечно, можно полным перебором какой из r, r+, rw, w, w+ приведёт к нужному результату, но документация в духе "XXX не поддержано" это нездорово.

  7. #7

    По умолчанию

    Цитата Сообщение от -=Vovka=- Посмотреть сообщение
    Здравствуйте!
    Что-то не пойму, почему не работает функция установки указателя файла на конец файла?
    Все время перезаписывает файл. Вот код:
    Здравствуйте.
    SEEK_END при записи не поддержан и не обрабатывается.
    Используйте SEEK_SET и смещение - именно так, как сделано в примере.
    Вообще, если руководствоваться примером - подобных проблем не будет.

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

  8. #8

    По умолчанию

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

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

  9. #9

    По умолчанию

    Цитата Сообщение от -=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, пожалуйста.

  10. #10

    По умолчанию

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

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  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

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

Ваши права

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