Fostrian, verileri metin olarak sıralamak yerine, Fostrian’ın onu ikili olarak depoladığı bir dosya biçimidir. Bu, Fostrian’ın aynı bilgileri saklarken gerçekten küçük dosyalara sahip olmasını sağlar.
Fostrian’ı kullanmak için önce ona ihtiyacımız var.
Fostrian’ın resmi NuGet paketi mevcuttur ve NuGet Paket Mağazasını (Visual Studio’da) veya dotnet add
paketini (VSCode dahil her şeyde) kullanabiliriz. Linki burada.
.NET projemize Fostrian’ı ekledikten sonra artık kodumuzda kullanabiliriz.
Sınıf dosyanızı açarak Fostrian’a referans ekleyin ve:
- Visual Basic için: Üste
Imports LibFoster
ekleyin - C# için: Üste
using LibFoster;
ekleyin - F# için: Üste
open LibFoster
ekleyin
Bundan sonra asıl eğlence başlıyor.
C#
// Bir kök düğümü oluşturalım.
var rootNode = Fostrian.GenerateRootNode();
// Stringler için bir kodlama seçmemiz gerek. Aynı şekilde başlangıç ve bitiş baytları da.
rootNode.Encoding = System.Text.Encoding.UTF8;
// lginç bilgi: Bu baytlar UTF-8 formatından gelme.
rootNode.StartByte = 0x02;
rootNode.EndByte = 0x03;
// Bir sayı ekleyelim
rootNode.Add(7);
// Bir düğüm daha ekleyelim ama bu sefer o düğümü elimizde tutalım.
var myNode = rootNode.Add("Fostrian'a Hoşgeldiniz!");
// Düğümlere düğüm ekleyebiliriz.
myNode.Add(true);
// Ve bunu zincirleme şeklinde yapabiliriz.
var chainEndNode = rootNode.Add("Zincir başı!").Add(1).Add('f').Add("Zincir sonu!");
Console.WriteLine(chainEndNode.DataAsString);
// Elimizde şimdi bu düğümler var:
/*
- Kök Düğümü
- 7
- "Fostrian'a Hoşgeldiniz!"
- true
- "Zincir başı!"
- 1
- f
- "Zincir sonu!"
*/
// Kayedeceğimiz dosya
var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Fostrian.fff");
// Doyasyı kaydedelim.
rootNode.Recreate(fileName);
// ve geri yükleyelim!
var myLoadedRoot = Fostrian.Parse(fileName);
// bazı düğümleri okuyalım.
Console.WriteLine(myLoadedRoot[0].DataAsInt32);
Console.WriteLine(myLoadedRoot[1].DataAsString);
// Eğer bir düğümü başka bir şey olarak okumaya çalışırsanız Fostrian hata verir.
try
{
// Hadi bizim "Zincir başı!" düğümünü string değil de karakter olarak okumaya çalışalım.
Console.WriteLine(myLoadedRoot[2].DataAsChar);
}
catch (Exception ex)
{
// Bize bir Exception atacak. Tüm hatayı yazdıralım.
Console.WriteLine(ex.ToString());
}