Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
nizovtsevnv
6 лет назад

Лог-файлы при разработке в Ada

Ada 2012

Существует несколько вариантов для сохранения логов в текстовые файлы при разработке на языке Ada:

Наиболее простым в плане отсутствия зависимостей является использование пакета Ada.Text_IO, который позволяет полноценно работать с текстовыми файлами.

В пакете доступны следующие режимы для открытия или создания файла (параметр Mode):

  • In_File - только для чтения
  • Out_File - перезапись с нуля
  • Append_File - создание с нуля или добавление в конец существующего файла

Также для работы с логами Ada.Text_IO предлагает процедуры и функции:

  • Создание файла (+ открытие)

    procedure Create (
       File : in out File_Type;
       Mode : File_Mode := Out_File;
       Name : String := "";
       Form : String := ""
    )
    
  • Открытие файла (если существует, иначе вызов исключения)

    procedure Open (
       File : in out File_Type;
       Mode : File_Mode;
       Name : String;
       Form : String := ""
    )
    
  • Освобождение файлового дескриптора

    procedure Close  (File : in out File_Type)
    
  • Удаление файла

    procedure Delete (File : in out File_Type)
    
  • Возврат логического результата по признаку "Открыт ли файл"

     function Is_Open (File : File_Type) return Boolean;
    

Подводя итог, приведу пример использования Ada.Text_IO с перезаписью лог-файла при каждом запуске программы.

with Ada.Text_IO;

procedure Main is
   --  Описание для файлового дескриптора
   f : Ada.Text_IO.File_Type;
begin
   --  Создание файла в режиме перезаписи
   Ada.Text_IO.Create(
      File => f,
      Mode => Ada.Text_IO.Out_File,
      Name => "my.log"
   );

   --  Запись строки в файл
   Ada.Text_IO.Put_Line(
      File => f,
      Item => "Hello world!"
   );

   --  Освобождение файлового дескриптора
   Ada.Text_IO.Close(File => f);
end Main;

С прочими возможностями пакета Ada.Text_IO можно ознакомиться в спецификации.

1
0.000 GOLOS
На Golos с October 2017
Комментарии (0)
Сортировать по:
Сначала старые