الملفات النصية والإخفاقات القابلة للاسترداد
لبات 0.7.0 · الإصدار الحالي
اقرأ واسترد واكتب ونزل بايتات دقيقة مع فصل المصدر المحفوظ عن ملفات التشغيل المؤقتة.
محتويات الصفحة
اختر المضيف وجهز المدخلات
يستخدم هذا الدليل لبات 0.7.0 في المضيفين. ملفات المتصفح بايتات افتراضية مؤقتة لكل مسودة؛ ويستخدم التنفيذ الأصلي مسارات نظام ملفات حقيقية نسبة إلى مجلد عمل العملية. يوضح مرجع الواجهة قواعد المسارات والسقوف.
يحتاج مثال القراءة المورّد سطر اسم ملف واحدا. للنتيجة الافتراضية لملف مفقود، اترك missing.txt غير موجود. لا يحتاج مثال الكتابة المورّد إدخالا أو أصلا مستوردا؛ يستبدل generated.txt بالبايتات الدقيقة generated\n. اختر قبل التشغيل الأصلي مجلد عمل تقصد فيه هذا الاستبدال.
ينشئ فتح أي مصدر مورّد مسودة جديدة بلا ملفات تشغيل ولا يشغلها. اقرأ المتطلبات أولا وافتح المسودة المقصودة ثم استورد البيانات إليها. تبقى مسودات مصدرك الأخرى متاحة.
عالج ملفا مفقودا
افتح مثال القراءة واختر التشغيل ثم أرسل missing.txt كسطر الإدخال. يطبع File: error: not-found\n ويعيد 0. لا تنهي النتيجة الفاشلة التنفيذ. في Linux تتطلب النتيجة نفسها غياب هذا الاسم من مجلد عمل العملية.
التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0
- للنتيجة المعلنة يجب أن يكون missing.txt غائبا. لا يلزم ملف أصل.
- لقراءة ناجحة افتح هذه المسودة الجديدة أولا ثم استورد ملف بيانات UTF-8 في أداة ملفاتها قبل التشغيل وأرسل اسمه المسطح.
أسطر الإدخال: ["missing.txt"]
دالة ابدأ_الرئيسية() -> ص64 {
اطبع("File: ").
دع الاسم = اقرأ_سطر().
دع المحتوى: نتيجة<نص> = اقرأ_ملف_نصي(الاسم).
إذا (المحتوى::نجاح) {
اطبع(المحتوى::قيمة).
} وإلا {
اطبع("error: ").
اطبع(المحتوى::الخطأ::الرمز).
اطبع("\س").
}
أرجع 0.
}
النتائج المتوقعة
{
"browser": {
"check": "success",
"class": "success",
"output": "File: error: not-found\n",
"processStatus": 0
},
"native": {
"check": 0,
"status": 0,
"output": "File: error: not-found\n"
}
}يفحص البرنامج ok قبل قراءة value أو error::code. حافظ على فحص الفرع عند تعديله. استخدم رموز الخطأ الثابتة لاختيار التصرف؛ الرسائل للعرض.
اقرأ النص المستورد بدقة
لقراءة ناجحة في المتصفح:
- افتح مثال القراءة كمسودة جديدة.
- جهز ملف UTF-8 باسم
notes.txtيحوي بالضبطhello\n، أي LF أخيرة بعدhello. - استورد
notes.txtفي أداة الملفات لتلك المسودة قبل التشغيل. استيراد المصدر إجراء آخر. - اختر التشغيل وأرسل
notes.txt. الخرج الدقيقFile: hello\nوالحالة0. - نزل
notes.txtصراحة إذا أردت نسخة قرص من تلك البايتات.
للقراءة الأصلية نفسها، ضع notes.txt في مجلد العمل ونزل المصدر وشغل aspl run قراءة-ملف.لبات. أرسل notes.txt. تعمل أيضا المسارات الأصلية المطلقة والمجلدات الفرعية؛ أسماء المتصفح مسطحة ولا يمكن أن تسميها.
يقبل استيراد الملف الخام أي بايتات. تفشل قراءة ملف يحوي بايتا مثل FF بسبب invalid-utf8؛ ويبقى الملف الأصلي قابلا للتنزيل دون تغيير. تبقى BOM أو CRLF أو NUL أو المحارف المفككة في القراءة الناجحة. لا ينظف النص تلقائيا.
يعرض المتصفح محارف التحكم غير المرئية في الخرج بتسميات وCRLF كفاصل سطر. نزل الملف لفحص بايتاته الدقيقة؛ لا يعدله تمثيل العرض.
اكتب واقرأ النتيجة ونزلها
التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0
- لا يلزم إدخال أو أصل. ينشئ التشغيل generated.txt أو يستبدله بنص generated تتبعه LF.
- كتابات المتصفح مؤقتة حتى تنزيلها صراحة. تستبدل الكتابة الأصلية الوجهة في مجلد عمل العملية.
الإدخال: لا يحتاج إلى أسطر إدخال.
دالة ابدأ_الرئيسية() -> ص64 {
اطبع("Output: ").
دع المحفوظ: نتيجة<وحدة> = اكتب_ملف_نصي("generated.txt", "generated\س").
إذا (المحفوظ::نجاح) {
اطبع("saved\س").
} وإلا {
اطبع("error: ").
اطبع(المحفوظ::الخطأ::الرمز).
اطبع("\س").
}
أرجع 0.
}
النتائج المتوقعة
{
"browser": {
"check": "success",
"class": "success",
"output": "Output: saved\n",
"fileUpdates": [
{
"name": "generated.txt",
"content": "generated\n"
}
],
"processStatus": 0
},
"native": {
"check": 0,
"status": 0,
"output": "Output: saved\n"
}
}تكتب العملية generated.txt بالبايتات 67 65 6E 65 72 61 74 65 64 0A، أي نص UTF-8 generated\n. وتطبع Output: saved\n. افتح الملفات في المتصفح ونزل generated.txt؛ لا تحفظ الكتابة الناجحة وحدها الملف إلى حاسوبك. يظهر الملف أصليا في مجلد العمل. يستبدله تشغيل لاحق بالبايتات نفسها.
لقراءته في مسودة المتصفح نفسها، انسخ مصدر read-file المورّد إلى المحرر الحالي ثم شغل وأرسل generated.txt. الخرج File: generated\n. يمنح فتح مثال القراءة كمسودة جديدة أخرى ملفات تشغيل منفصلة وفارغة. شغل المثال الأصلي من مجلد العمل نفسه.
تكتب السلسلة الفارغة ملفا فارغا. لا تضيف الكتابة سطرا جديدا غير ما تقدمه. يحفظ الاستبدال الفاشل الملف السابق، لكن الكتابة المكتملة تبقى بعد توقف لاحق أو إيقاف. لا يكتب الفحص ملفات في أي مضيف.
الإخفاقات القابلة للاسترداد والتوقفات وأخطاء المصدر
not-found وinvalid-utf8 وfile-too-large نتائج فاشلة يمكنك فحصها والاسترداد منها. يعيد التحليل العددي الصارم أيضا invalid-number أو number-out-of-range؛ لا تحول أرقام الإدخال مثل ٢ إلى ASCII.
توقف قراءة value من نتيجة فاشلة التنفيذ بسبب wrong-result-branch. قراءة value من result<unit> خطأ مصدر. للحدود وفشل التخصيص في المضيف والإلغاء نتائجها الخاصة. اقرأ النتائج القابلة للاسترداد قبل اعتبار أي تشغيل فاشل نتيجة فاشلة.
افصل المصدر عن الملفات المؤقتة
يمكن أن يعود مصدر المسودة المحفوظ بعد التحديث؛ لا تعود ملفات التشغيل. يحفظ تبديل المسودات وتغيير اللغة والرجوع في التبويب نفسه والتوسيع وإعادة الضبط ملفات تلك المسودة داخل المستند. تعيد إعادة الضبط المصدر وتمسح الخرج وسجل الإدخال وتحتفظ بالملفات. مسح الملفات وحذف المسودة إجراءان منفصلان بتأكيد. صدر المصدر ونزل كل ملف بيانات مطلوب قبل التحديث إذا احتجت كليهما لاحقا.
يفحص الاستيراد الدفعة كلها. لا تغير الأسماء غير الصالحة أو حدود الحجم أو فشل القراءة أو إلغاء الاستبدال أو الإلغاء أي ملف موجود. يقفل التشغيل تعديل الملفات ويستخدم لقطة ثابتة. يمكن تنزيل البايتات المستوردة والمكتوبة بنجاح صراحة، ومنها الكتابات السابقة لإخفاق لاحق.
helper.aspl المستورد عبر الملفات بيانات تنفيذ وليس source-module. لا يلبي استيراد مصدر في المتصفح. تتبع وحدات المصدر الأصلية مجموعة مصادر البرنامج الأصلي، ويحمّلها المترجم مستقلة عن عمليات الملفات النصية هذه.