Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Библиотека toml-delphi: работа с форматом TOML в Delphi и Pascal

Delphi , Интернет и Сети , XML

 

В мире разработки конфигурационные файлы играют важную роль. Они позволяют отделить логику приложения от настроек, делая код более гибким и удобным в поддержке. Существует множество форматов конфигурационных файлов, таких как INI, JSON, YAML и XML. Однако, в последнее время набирает популярность формат TOML (Tom's Obvious, Minimal Language).

TOML позиционируется как "config file format for humans", то есть формат, ориентированный на читаемость и простоту редактирования человеком. Он особенно популярен в сообществах Python и Rust. TOML сочетает в себе преимущества INI (простота) и JSON/YAML (структурированность), предлагая более компактную и понятную альтернативу XML.

Если вы разрабатываете на Delphi или Pascal и нуждаетесь в удобном способе работы с TOML, то библиотека toml-delphi может стать отличным решением.

Что такое toml-delphi?

toml-delphi – это библиотека на Object Pascal (Delphi), предназначенная для парсинга и генерации TOML-файлов. Она предоставляет простой и эффективный способ интеграции TOML в ваши Delphi и Pascal проекты.

Основные возможности toml-delphi:

  • Соответствие стандарту TOML v1.0.0: Библиотека полностью соответствует спецификации TOML версии 1.0.0, что гарантирует корректную обработку TOML-файлов.
  • Высокая производительность: Используется однопоточный токенизатор и лексер, не использующий регулярные выражения, что обеспечивает быструю обработку TOML-документов.
  • Преобразование в TJSONObject: TOML-документы преобразуются в стандартные объекты TJSONObject из RTL Delphi, что позволяет легко перемещаться по структуре, манипулировать данными и выполнять запросы.
  • Обратное преобразование: Включен TTOMLWriter для преобразования TJSONObject обратно в TOML.
  • (Де)сериализация объектов: Поддерживается простая (де)сериализация объектов и записей Delphi из/в TOML.
  • MIT License: Библиотека распространяется под лицензией MIT, что позволяет использовать её в коммерческих и некоммерческих проектах без ограничений.

Примеры использования toml-delphi:

1. Парсинг TOML-файла:

uses
  System.JSON,
  TOML;

var
  JsonObject: TJSONObject;
  FileName: string;
begin
  FileName := 'config.toml';
  JsonObject := TJSONObject.FromTOMLFile(FileName);

  // Теперь JsonObject содержит данные из config.toml в формате JSON.
  // Вы можете обращаться к данным, например:
  Writeln(JsonObject.GetValue('database.server').AsString);
end;

2. Парсинг TOML-строки:

uses
  System.JSON,
  TOML;

var
  JsonObject: TJSONObject;
  TOMLstring: string;
begin
  TOMLstring := '[database]\nserver = "192.168.1.1"\nports = [ 8001, 8001, 8002 ]';
  JsonObject := TJSONObject.FromTOML(TOMLstring);

  // Теперь JsonObject содержит данные из TOML-строки.
  Writeln(JsonObject.GetValue('database.server').AsString);
end;

3. Генерация TOML из TJSONObject:

uses
  System.JSON,
  TOML;

var
  JsonObject: TJSONObject;
  TOMLString: string;
  FileName: string;
begin
  JsonObject := TJSONObject.Create;
  JsonObject.AddPair('name', TJSONString.Create('My Application'));
  JsonObject.AddPair('version', TJSONString.Create('1.0'));

  TOMLString := JsonObject.ToTOML(True, 2); // MultilineStrings = True, Indent = 2
  Writeln(TOMLString);

  FileName := 'output.toml';
  JsonObject.SaveTOMLToFile(FileName, True, 2);
end;

4. Сериализация и десериализация объектов:

uses
  System.JSON,
  TOML;

type
  TTestRec = record
    IntValue: Integer;
    FloatValue: double;
    StringValue: string;
    DateValue: TDateTime;
    ArrayValue: TArray<string>;
 end;

 procedure TestSerializer;
 var
   Rec: TTestRec;
   TOMLString: string;
 begin
   Rec.IntValue := 123;
   Rec.FloatValue := 3.14;
   Rec.StringValue := 'abc';
   Rec.DateValue := Now;
   Rec.ArrayValue := ['A', 'B', 'C'];

   Writeln('Serialized record:');
   WriteLn('==================');
   TOMLString := TTOMLSerializer.Serialize(Rec);
   Writeln(TOMLString);
   Writeln('Record deserialized and serialized again:');
   Writeln('=========================================');
   Rec := TTOMLSerializer.Deserialize<TTestRec>(TOMLString);
   TOMLString := TTOMLSerializer.Serialize(Rec);
   Writeln(TOMLString);
 end;

Альтернативные решения:

Хотя toml-delphi является отличным вариантом, существуют и другие библиотеки для работы с TOML в Delphi и Pascal. Например, можно рассмотреть:

  • fpTOML: Библиотека для Free Pascal, которая также может быть использована в Delphi.

Выбор библиотеки зависит от ваших конкретных потребностей и предпочтений. toml-delphi выделяется своей простотой использования, высокой производительностью и полной поддержкой стандарта TOML v1.0.0. Она предоставляет удобный способ интеграции TOML в ваши Delphi и Pascal проекты, делая работу с конфигурационными файлами более эффективной и приятной.

Создано по материалам из источника по ссылке.

Библиотека toml-delphi предоставляет простой и эффективный способ парсинга и генерации TOML-файлов в Delphi и Pascal проектах.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: XML ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-09-25 01:26:45/0.0035660266876221/0