HotXLS belgeleri / API başvurusu

Bileşik dosya depolama

lxCompoundFile, Pascal akışları üzerinden Compound File Binary kapsayıcılarını okur ve yazar; buna iç içe depolama kapsamları, MiniFAT yükleri ve zincirli DIFAT sektörleri dahildir; yerel Classic BIFF8 çalışma kitabı API'leri Linux ve macOS'ta bu arka ucu kullanır

Hesap tablosu işleri için sıradan çalışma kitabı Open ve SaveAs çağrılarını kullanın; aşağıdaki daha alt düzey API'ler iç içe akışları incelemek, kapsayıcı oluşturmak ve depolama üst verisini korumak için işe yarar

Kapsayıcı okuma veya oluşturma

TlxCompoundFile.LoadFromStream(AStream, AOwnsStream) dizin ve tahsis üst verisini yükler; AOwnsStream varsayılan olarak False'tur ve arka plandaki akış, içeriği çıkarılırken kullanılabilir kalmalıdır

CreateNew(AStream, AOwnsStream) yeni bir kapsayıcı hazırlar, AddStorage ve AddStream içeriğini kuyruğa alır, Save ise gereken DIFAT uzatma sektörleriyle sürüm 3 bir kapsayıcı yazar

ÜyeDavranış
RootIndexKök dizin girdisi kimliği; üst düzey depolama ve akışlar için ebeveyn olarak kullanılır
AddStorage(Name, ParentIndex)İç içe bir depolamayı kuyruğa alır ve alt öğe eklemek için dizin kimliğini döndürür
AddStream(Name, Data)Kök düzeyde bir bayt akışını kuyruğa alır
AddStream(Name, Data, ParentIndex)Seçilen ebeveyn kapsamına bir bayt akışı kuyruğa alır ve kimliğini döndürür
OpenStream(Name), OpenStream(Name, ParentIndex)Kök ya da kapsamlı akışı sahiplenilmiş bir TlxCfbStream içine çıkarır; olmayan akış nil döndürür
OpenEntryStream(Index)Bir dizin akışını kimlikle çıkarır; geçersiz ya da akış olmayan girdi nil döndürür
HasStream(Name), HasStream(Name, ParentIndex)Kök ya da seçilen ebeveyn kapsamında akış varlığını sınar
FindStorage(Name, ParentIndex)Seçilen ebeveynde bir depolama kimliği döndürür; eşleşen depolama yoksa -1 döner
EntryCount, Entries(Index)Yüklenen dizin girdilerini inceler; indeksler sıfır tabanlıdır ve geçerli olmalıdır
SetEntryMetadata(Index, Entry)Geçerli bir kuyruktaki girdiye ya da köke yalnızca sınıf kimliğini, durum bitlerini ve zaman damgalarını kopyalar; yapısal kimlikler ve yükler değişmeden kalır

TlxCfbEntry kaydı Name, EntryType, StartSector, Size, LeftSibling, RightSibling, Child ve türetilmiş ParentIndex alanlarını açığa çıkarır; dizin bağlantıları indekstir ve -1 olmayan bir kimlik gösterir

Üst veri alanları ClassID, StateBits, CreationTime ve ModificationTime'dur; zaman damgaları yerelleştirilmiş bir tarih yerine 1601 UTC çağından ham FILETIME değerlerini korur

TlxCfbEntryType; cfbEmpty, cfbStorage, cfbStream ve cfbRoot değerlerini içerir; TlxCfbStream ise Name, Size, Data, Read, Seek ve CopyTo üyelerini açığa çıkarır

Çıkarılan akışlar koparılmış baytların sahibi olur ve çağıran tarafından serbest bırakılmalıdır; bozulma, eksik zincirler, geçersiz sahiplik ve döngüsel dizin ya da tahsis grafikleri kırpılmış yük döndürmek yerine reddeder

lxCfbCompareNames(A, B), sabitlenmiş basit BMP büyük harf eşlemesiyle Compound File Binary uzunluk-öncelikli sıralamasını uygular; yinelenen adlar ebeveyne göre kapsamlanır ve ayrı iç içe depolamalardaki özdeş adlar ayrı kalır

Yerel depolama arayüzleri

Windows dışı hedeflerde lxOLE, Classic çalışma kitabı yükleme ve kaydetmenin gerektirdiği depolama arayüzü uygulamasını sağlar; IStorage, IStream ve IEnumStatStg açık arayüz sahipliğini ve kopmuş yerel kapsayıcı durumunu korur

Fabrika veya yardımcıSözleşme
XlsOpenCompoundStorage(Source, Storage)Akış ofseti sıfırdan başlayan salt okunur bir kapsayıcı yükler
XlsOpenCompoundStorage(Source, Start, Storage)Kapsayıcıyı belirtilen negatif olmayan ofsetten yükler
XlsCreateCompoundStorage(Storage)İç içe kapsamları ve akışlarıyla yazılabilir yerel depolama oluşturur
XlsWriteCompoundStorage(Storage, Destination)Yerel kök depolamayı verilen akışa serileştirir; yabancı uygulamalar ve kök olmayan depolama reddedilir
XlsFreeCompoundStorageName(Name)Depolama istatistiklerinin ya da numaralandırmanın döndürdüğü yerel adları serbest bırakır; nil kabul edilir

Fabrikalar HResult döndürür; döndürülen arayüzü kullanmadan önce Succeeded(Result) sınayın ve işiniz bittiğinde arayüz referanslarını bırakın

Salt okunur değişiklik başarısız olur, kopyalanan akış imleçleri bağımsız konumları korur ve iç içe kopyalar ebeveyn kimliğini ile desteklenen üst veriyi yaşatır; doğrudan serileştirme daha üst düzey çalışma kitabı hedef işlem sözleşmesini sağlamaz

Kurallı çalışma kitabı tanımlayıcıları

lxStandard içindeki XlsIdentifierKeyText(const A: WideString): WideString, mevcut sabitlenmiş Unicode tanımlayıcı anahtarının UTF-16 metin gösterimini döndürür; böylece Classic tanımlı ad depolaması, kurallı eşitliği diğer çalışma kitabı motorlarıyla paylaşabilir

Bu anahtar gösterimi kimlik ve arama içindir, görüntülenen yazım için değil; girilen adlar değişmeden kalır ve CFB dizin karşılaştırıcısı biçimin zorladığı ayrı sıralamayı sürdürür

Yerel derleme gereksinimleri ve doğrulanmış BIFF8 çalışma kitabı sözleşmesi için Free Pascal desteği sayfasına, desteklenen şifreleme ve düz metin özellik akışı davranışı için Classic şifreleme sayfasına bakın