diff --git a/README.md b/README.md index ce073ab..c553428 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,54 @@ # OneSTools.FileDatabase -Библиотека для чтения данных файловых информационных баз 1С (Документация в разработке) +[![Nuget](https://img.shields.io/nuget/v/OneSTools.FileDatabase)](https://www.nuget.org/packages/OneSTools.FileDatabase) +Библиотека для чтения данных файловых информационных баз 1С. Поддерживается работа только с версией формата файлов 8.3.8 и только операции чтения. +Кроме обычных информационных баз, так-же дает возможность прочитать данные базы хранилища конфигураций. -Позволяет считывать данные таблиц (поддерживается только версия файлов 8.3.8). +Пример работы с библиотекой: + +```csharp +using var database = new FileDatabaseConnection("..\\1Cv8.1CD"); +database.Open(); + +foreach(var table in database.Tables) +{ + Console.WriteLine($"Table \"{table}\":"); + + // list the table fields + Console.WriteLine("\tFields:"); + + foreach (var field in table.Fields) + Console.WriteLine($"\t\tField \"{field}\""); + + if (table.Indexes.Count > 0) + { + // list the table indexes + Console.WriteLine("\tIndexes:"); + + foreach (var index in table.Indexes) + { + Console.WriteLine($"\t\tIndex \"{index}\""); + + // list the index fields + Console.WriteLine("\t\t\tIndex fields:"); + + foreach (var indexField in index.Fields) + Console.WriteLine($"\t\t\t\tIndex field \"{indexField}\""); + + } + } + + // list the table data (rows) + if (table.Rows.Count > 0) + { + Console.WriteLine("\tRows:"); + + // values is an array of objects, it contains values as in the same order as fields are represented + foreach (var values in table.Rows) + { + Console.WriteLine("\t\tRow"); + } + } +} +``` +Подключение представлено объектом **FileDatabaseConnection**, который предоставляет информацию об открытой базе и в числе прочего содержит коллекцию **Tables** +Каждый элемент коллекции **Tables** представляет информацию о схеме таблицы и дает доступ к данным таблицы через свойство **Rows** (доступно использование **LINQ**)