Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Запись в файл  (Прочитано 669 раз)

razorqhex

  • Пользователь
  • **
  • Сообщений: 79
    • Просмотр профиля
Запись в файл
« : 18 Июня 2020, 13:59:09 »
Здравствуйте.

Появился вопрос как постоянно записывать информацию в txt файл без его сброса чтобы скада постоянно не перезаписывала его.  Каждый час в БД записывается информация, но нужно запись в файл чтобы можно было в любой момент сбросить файл с нужной информацией. Вот весь код. Здесь происходит запись в таблицу tblVNS8 и в файл, но проблема состоит в том, что пишет он ноли и постоянно файл перезаписывает.
Код: (delphi)
var
  aQuery: string;
  dataInFile: string;
  aCell: TM_TableCell;
begin
  if (SpecificPowerConsumption_VNS8_End.AsInt64 <> 0) and (SpecificPowerConsumption_VNS8_Start.AsInt64 <> 0) then
    begin
    aCell := tblVNS8.GetCell(0, tblVNS8.RowIndex);

    aQuery := 'UPDATE `specificinfovns8` SET ' +
      '`timestamp`=' + MySQLDateTime(Now, dttFull) + ', ' +
      '`specific`=' + QuotedStr(vrSpecificVNS8.AsStr) + ', ' +
      '`hourly`=' + QuotedStr(vrHourlyVNS8.AsStr) + ', ' +
      '`rpm`=' + QuotedStr(vrRPMVNS8.AsStr) + ', ' +
      ' WHERE `id`=' + QuotedStr(aCell.Text);

    dataInFile := DateToStr(Now) + ' ' + vrSpecificVNS8.AsStr + ' '  + vrHourlyVNS8.AsStr + ' ' + vrRPMVNS8.AsStr;

    TextFileOpen('TableVNS8.txt', '', fomRewrite, fcpUTF8);
    TextFileWriteLn(dataInFile);
    TextFileClose;

    RunSQL(aQuery, nil, 5);
  end;
end.
« Изменён: 19 Июня 2020, 17:46:09 от Simple-Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1177
    • Просмотр профиля
Re: Запись в файл
« Ответ #1 : 19 Июня 2020, 16:32:17 »
Здравствуйте.

Если требуется дописывать данные в текстовый файл, то нужно открывать его функцией TextFileOpen в режиме fomAppend:
Код: (delphi)
begin
  TextFileOpen('TableVNS8.txt', '', fomAppend, fcpUTF8);
end.