توليد بنية المصنف المحمّل
تتيح التوليدات الهيكلية للقارئ الاحتفاظ بلقطات قليلة الكلفة ورفض التجول بعد تغيّر بنية المصنف التي يعتمد عليها
مصادر التوليد
| المحرك | توليد مخزن الخلايا | توليد مجموعة أوراق العمل |
|---|---|---|
| Classic XLS | TXLSWorksheet.CellStructureGeneration | TXLSWorksheets.StructureGeneration |
| XLSX | TXLSXWorksheet.CellStructureGeneration أو TXLSXCells.StructureGeneration | TXLSXSheets.StructureGeneration |
كل خاصية منها قيمة UInt64 للقراءة فقط، والمقدار الدقيق لتغيرها غير خاضع للعقد
العمليات المبطلة
يغيّر إنشاء خلايا مخزنة أو إزالتها أو تفريغها توليد مخزن الخلايا عندما تتغير البنية فعليًا
كما تبطل إضافة الصفوف أو الأعمدة وحذفها ونقل الإحداثيات والإلحاق أو التجسيد بالحشو وإعادة بناء فهرس الخلايا صراحة حالة تجول مخزن الخلايا
يغيّر إضافة أوراق العمل أو حذفها أو نقلها أو تفريغها توليد مجموعة أوراق العمل عندما تتغير المجموعة فعليًا
العمليات غير المبطلة
لا يؤدي تغيير قيمة خلية قائمة أو صيغتها أو قيمتها المخزنة مؤقتًا أو تنسيقها إلى تغيير توليد مخزن الخلايا الخاص بها
لا يؤدي إعادة تسمية ورقة عمل أو تنشيطها إلى تغيير توليد مجموعة أوراق العمل، وتُبقي عمليات النقل الفارغة الأثر والحذف الغائب وتفريغ مجموعة فارغة أصلًا التوليد الحالي كما هو
التحقق
استدعِ XlsValidateStructureGeneration قبل تقديم حالة التجول التي أُنشئت لتوليد سابق أو قراءتها
يرفع عدم التطابق الاستثناء EXLSLoadedCellCursorInvalidated، بما يتيح للمستدعِين التمييز بين الإبطال الهيكلي وأخطاء البيانات أو التنسيق
ExpectedGeneration := Worksheet.CellStructureGeneration;
{ Read or retain traversal state }
XlsValidateStructureGeneration(
ExpectedGeneration,
Worksheet.CellStructureGeneration);
مؤشر المصنف الكلاسيكي
يلتقط IXLSWorkbook.CreateLoadedCellCursor توليد المصنف الكلاسيكي الإجمالي ويتحقق منه قبل كل استدعاء لـ MoveNext وCurrent
يجتاز المؤشر فروع التخزين المتناثر المخصصة مباشرة بحالة مؤشر ثابتة ويعيد قيم TXLSLoadedCellSnapshot مملوكة
يثبّت التحميل الزائد المنطقي ما إذا كانت الخلايا الفارغة المخزنة المنمّطة بشكل مستقل مشمولة؛ ولا تُنشئ تنسيقات الصفوف والأعمدة وأوراق العمل الموروثة مدخلات فارغة في المؤشر
مؤشر مصنف XLSX
يلتقط TXLSXWorkbook.CreateLoadedCellCursor عقد عمر مصنف وتوليد بنية إجمالي مشتركًا بين كل مخازن خلايا أوراق العمل ومجموعة أوراق العمل
يقرأ المسار المجسد كتل الصفوف المتناثرة مباشرة، بينما يعيد المسار المعبأ استخدام مكرر الحشو دون تجسيد خلايا أو الاحتفاظ بمؤشرات داخلية في اللقطات
يمكن للتحميل الزائد المنطقي تضمين الخلايا الفارغة المخزنة المنمّطة فقط في أي من تمثيلي التخزين، بينما تبقى العناصر النائبة Empty وNull غير المنمّطة مستثناة
يؤدي تحرير المصنف إلى إبطال عقده قبل تحرير تخزين أوراق العمل، بحيث يرفع الوصول اللاحق للمؤشر الاستثناء EXLSLoadedCellCursorInvalidated
حد التزامن
توفر فحوصات التوليد كشفًا فاشلًا سريعًا فقط ولا تجعل تعديل المصنف والتجول المتوازيين آمنين على مؤشرات الترابط