تخطَّ إلى المحتوى

الوحدة ملفات

منقول من الكتاب المرجعي: docs/handbook/stdlib/ملفات.md · الإيداع 7a52f6c

مولَّدة من تعليقات الشرح في stdlib/ملفات.م (meem --list-module ملفات --json). تُستورد بـاستورد ملفات وتُستدعى دوالها ملفات.دالة(...). الشرح الأطول وأمثلته في stdlib.md (وثيقة في مستودع المجمّع).

التوقيع: اقرأ_ملف(مسار نص, م مخصص) ← !نص

محتوى الملف كله نصاً. يفشل بـ: غير_موجود، ممنوع، ليس_ملفا (مجلد)، كبير_جدا (أكبر من 1 غ.ب)، ليس_نصا (بايتات ليست UTF-8، أو بايت صفري)، لا_ذاكرة، فشل_النظام. نهايات الأسطر تبقى كما هي في الملف. النص من المخصص م إن مُرّر، وإلا من الافتراضي؛ يملكه المستدعي ويحرره بـ حرر(النص[, م]). استعمال: نص_الملف = جرّب اقرأ_ملف(“بيانات.txt”) أو اقرأ_ملف(“بيانات.txt”) والا “”

المخصص الأخير اختياري: إن تُرك فالافتراضي.

مثال
استورد ملفات
جرّب ملفات.اكتب_ملف("ملاحظة.txt", "سطر اول\nسطر ثان\n")
ن = جرّب ملفات.اقرأ_ملف("ملاحظة.txt")
اطبع(طول(ن), " حرفاً")
غائب = ملفات.اقرأ_ملف("غائب.txt") والا خ:
اطبع("تعذّرت القراءة: ", خ)
""
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
16 حرفاًتعذّرت القراءة: غير_موجود

التوقيع: اكتب_ملف(مسار نص, محتوى نص) ← !فراغ

يكتب النص في الملف: ينشئه إن لم يوجد، ويستبدل محتواه كله إن وُجد. يفشل بـ: غير_موجود (مجلد ناقص في المسار)، ممنوع، ليس_ملفا، فشل_النظام. لا يضيف سطراً جديداً في الآخر. استعمال: جرّب اكتب_ملف(“ناتج.txt”, “السطر الأول\n”)

مثال
استورد ملفات
جرّب ملفات.اكتب_ملف("ناتج.txt", "مرحبا\n")
جرّب ملفات.اكتب_ملف("ناتج.txt", "بديل")
اطبع(جرّب ملفات.اقرأ_ملف("ناتج.txt"))
ملفات.اكتب_ملف("لا_مجلد/ناتج.txt", "س") والا خ:
اطبع("تعذّرت الكتابة: ", خ)
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
بديلتعذّرت الكتابة: غير_موجود

التوقيع: الحق_بملف(مسار نص, محتوى نص) ← !فراغ

يلحق النص بآخر الملف، وينشئه إن لم يوجد. أخطاؤه كـ اكتب_ملف. استعمال: جرّب الحق_بملف(“سجل.txt”, “حدث جديد\n”)

مثال
استورد ملفات
جرّب ملفات.الحق_بملف("سجل.txt", "حدث اول\n")
جرّب ملفات.الحق_بملف("سجل.txt", "حدث ثان\n")
اطبع(جرّب ملفات.اقرأ_ملف("سجل.txt"))
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
حدث اولحدث ثان​

التوقيع: يوجد_ملف(مسار نص) ← منطقي

هل في المسار ملف يُفتح للقراءة؟ خطاء لما لا وجود له، وللمجلد، ولما لا صلاحية لقراءته. لا تفشل.

مثال
استورد ملفات
اطبع(ملفات.يوجد_ملف("/مسار/لا/وجود/له"))
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
خطاء
مثال
استورد ملفات
جرّب ملفات.اكتب_ملف("هنا.txt", "")
اطبع(ملفات.يوجد_ملف("هنا.txt"), " ", ملفات.يوجد_ملف("غائب.txt"), " ", ملفات.يوجد_ملف("."))
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
صواب خطاء خطاء

التوقيع: اقرأ_سطور(مسار نص, م مخصص) ← !قائمة[نص]

سطور الملف: محتواه مقسوماً عند كل \n، بلا علامة النهاية نفسها. سطر أخير بلا نهاية سطر يُعدّ سطراً؛ والملف الفارغ قائمة فارغة. نهاية السطر \r\n (ويندوز) تُزال كلها: لا يبقى \r في آخر سطر (منذ 0.8.0). أخطاؤه كـ اقرأ_ملف. القائمة ونصوصها من المخصص م إن مُرّر، وإلا من الافتراضي. استعمال: لكل سطر في جرّب اقرأ_سطور(“بيانات.txt”):

المخصص الأخير اختياري: إن تُرك فالافتراضي.

مثال
استورد ملفات
جرّب ملفات.اكتب_ملف("قائمة.txt", "خبز\nحليب\nتمر")
لكل سطر في جرّب ملفات.اقرأ_سطور("قائمة.txt"):
اطبع("- ", سطر)
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
- خبز- حليب- تمر

التوقيع: سرد_مجلد(مسار نص, م مخصص) ← !قائمة[نص]

أسماء ما في المجلد (ملفات ومجلدات) مرتّبة بترتيب نقاط الترميز، بلا “.” و”..“. يفشل بـ: غير_موجود، ممنوع، ليس_مجلدا، فشل_النظام. القائمة ونصوصها من المخصص م إن مُرّر، وإلا من الافتراضي. استعمال: لكل اسم في جرّب سرد_مجلد(”.“):

المخصص الأخير اختياري: إن تُرك فالافتراضي.

مثال
استورد ملفات
جرّب ملفات.انشئ_مجلد("صور")
جرّب ملفات.اكتب_ملف("صور/ب.png", "")
جرّب ملفات.اكتب_ملف("صور/ا.png", "")
اطبع(جرّب ملفات.سرد_مجلد("صور"))
س = ملفات.سرد_مجلد("صور/ا.png") والا خ:
اطبع("ليس مجلداً: ", خ)
[""]
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
[ا.png, ب.png]ليس مجلداً: ليس_مجلدا

التوقيع: انشئ_مجلد(مسار نص) ← !فراغ

ينشئ مجلداً (لا ينشئ ما فوقه). يفشل بـ: موجود، غير_موجود (ما فوقه)، ممنوع، ليس_مجلدا، فشل_النظام. استعمال: جرّب انشئ_مجلد(“ناتج”)

مثال
استورد ملفات
جرّب ملفات.انشئ_مجلد("ناتج")
ملفات.انشئ_مجلد("ناتج") والا خ:
اطبع("مرة ثانية: ", خ)
ملفات.انشئ_مجلد("لا/فرعي") والا خ:
اطبع("بلا الأب: ", خ)
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
مرة ثانية: موجودبلا الأب: غير_موجود

التوقيع: احذف_ملف(مسار نص) ← !فراغ

يحذف ملفاً (لا مجلداً). يفشل بـ: غير_موجود، ممنوع، ليس_ملفا (مجلد)، فشل_النظام. استعمال: جرّب احذف_ملف(“مؤقت.txt”)

مثال
استورد ملفات
جرّب ملفات.اكتب_ملف("مؤقت.txt", "س")
جرّب ملفات.احذف_ملف("مؤقت.txt")
اطبع(ملفات.يوجد_ملف("مؤقت.txt"))
ملفات.احذف_ملف("مؤقت.txt") والا خ:
اطبع("مرة ثانية: ", خ)
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
خطاءمرة ثانية: غير_موجود