Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: vladka767 от 29 Мая 2019, 18:38:43

Название: Создание файла с помощью скрипта
Отправлено: vladka767 от 29 Мая 2019, 18:38:43
Добрый день.
Подскажите, пожалуйста, можно ли с помошью скриптов создавать файл, в котором будут записаны ряд переменных?
В качестве переменных будут результаты испытания неких агрегатов и для каждого агрегата должен быть свой файл.
Название: Re: Создание файла с помощью скрипта
Отправлено: Simple_Scada от 29 Мая 2019, 21:15:14
Здравствуйте.

Да, это возможно. Примеры скриптов работы с файлами доступны по ссылке (https://simple-scada.com/help/script/files-work.html), а также в Demo-проекте на странице "Скрипты -> Работа с файлами". Методы для работы с текстовыми файлами можно найти здесь (https://simple-scada.com/help/script/text-files.html), для работы с двоичными файлами здесь (https://simple-scada.com/help/script/binary-files.html).
Название: Re: Создание файла с помощью скрипта
Отправлено: vladka767 от 30 Мая 2019, 10:14:40
Спасибо, буду изучать!
Название: Re: Создание файла с помощью скрипта
Отправлено: vladka767 от 21 Июня 2019, 19:39:37
Добрый день.
Во время изучения возник вопрос : есть ли функция для записи в файл строковой переменной пез перевода каретки, т.к. при вызове последовательно несколько раз функции TextFileWriteLn запись происходит каждый раз с новой строки. Можно, конечно, склеивать нужные строки в одну, а потом писать, но все же удобно иметь отдельную функцию)

И еще вопрос : как лучше открывать файл для дозаписи, а не для перезаписи ?
Нашел такую возможность с помощью свойства fomAppend, но оно подходит только для уже созданных файлов.
Получается сначала файл нужно открыть в режиме fomRewrite (для создания), после чего закрыть и открыть с fomAppend ? Или есть другой более легкий способ решить такую задачу?
Название: Re: Создание файла с помощью скрипта
Отправлено: Neskad от 22 Июня 2019, 14:47:09
Цитировать
Можно, конечно, склеивать нужные строки в одну, а потом писать, но все же удобно иметь отдельную функцию
Такую удобную функцию несложно написать самому, в чем проблема?
Если очень востребована, можно даже в глобальном модуле.
Код: (delphi)
interface
  procedure BufferWrite(aString: string); // соединяет все принятые аргументы в одну строку
  procedure BufferToFile(); // пишет результат в файл

implementation
  var
    strBuffer: string;

  procedure BufferWrite(aString: string);
    begin
      strBuffer:= StrBuffer + aString;
    end;

  procedure BufferToFile();
    begin
      if (TextFileOpen('MyTextFile.txt', '', fomAppend, fcpUTF8) = True) then
        TextFileWriteLn(strBuffer);
      strBuffer:= '';
      TextFileClose;
    end;
end.