Здравствуйте.
Для работы с текстовыми файлами нужно использовать эти функции (https://simple-scada.com/help/script/text-files.html). Можно создать новый скрипт с типом события "Прошла секунда" и в этом скрипте выполнять запись в текстовый файл:
begin
{ открываем текстовый файл MyTextFile.txt из папки "\Simple-Scada\Projects\Папка_проекта\User files\"
для добавления записи в конец файла }
if TextFileOpen('MyTextFile.txt', '', fomAppend, fcpUTF8) then
begin
TextFileWriteLn(vrTemperature.AsStr); // записываем значение температуры в конец файла
TextFileClose; // закрываем файл
end;
end;
При необходимости можно сделать любые манипуляции с файлами. Просто используйте эти функции для работы с файлами (https://simple-scada.com/help/script/text-files.html), они подробно описаны в руководстве.
begin
if not FileExists('MyTextFile.txt', '') then // если файл не найден
TextFileOpen('MyTextFile.txt', '', fomRewrite, fcpUTF8) // то создаём его и открываем
else // если файл существует
TextFileOpen('MyTextFile.txt', '', fomAppend, fcpUTF8); // то открываем его и перемещаем курсор в конец файла
// здесь работаем с файлом
TextFileClose; // закрываем файл
end.
В текстовых файлах нет функций для перемещения к указанной строке, поэтому если в текстовом файле нужно установить курсор на какую-то конкретную строку, например пятую, то придется открыть его и пять раз выполнить пустое чтение через TextFileReadLn (чтение текущей строки + переход на следующую строку), а затем выполнить запись.
Супер. Спасибо за ответ. Но я извиняюсь, может уже Вам надоел, но шеф потребовал доработку с которой я не могу справиться. Вот то, что у меня получилось, просто шикарно, но требуется что бы со значением шло время и дата (например 1я строка - время, 2я - значение, 3 - время, 4 - значение и т.д). Пробовал ставить календарь, но там дата 1899 года, добавил в скрипт, так в TXT файл оно добавляет две строки с нулями, т.е. 1я строка-значение, 2я-ноль, 3я-ноль, 4-значение 5-ноль, 6-ноль и т.д.. Читал в одной из тем, что человек как-то перевел в текст и стало все нормально.
begin
if not FileExists('Давление.txt', '') then
TextFileOpen('Давление.txt', '', fomRewrite, fcpUTF8)
else
TextFileOpen('Давление.txt', '', fomAppend, fcpUTF8);
if TextFileOpen('Давление.txt', '', fomAppend, fcpUTF8) then
TextFileWriteLn(Field1.AsStr);
TextFileWriteLn(Calendar1.AsStr);
end.
После открытия файла не нужно снова открывать файл (TextFileOpen). В текстовый файл можно записывать только строки, поэтому переменную даты/времени нужно переводить в строку через DateTimeToStr. Календарь нужно связать с какой-то переменной, иначе значение не будет меняться.
begin
if not FileExists('Давление.txt', '') then
TextFileOpen('Давление.txt', '', fomRewrite, fcpUTF8)
else
TextFileOpen('Давление.txt', '', fomAppend, fcpUTF8);
TextFileWriteLn(DateTimeToStr(Calendar1.AsDateTime));
TextFileWriteLn(Field1.AsStr);
TextFileClose;
end.
Если нужно просто записывать текущее время (время ПК), то можно писать так: TextFileWriteLn(DateTimeToStr(Now));