Skip to content

الفصل 24: إدارة الملفات

مقدمة

إدارة الملفات ضرورية لأي تطبيق حقيقي. لغة ص توفر مكتبة نظام_ملفات ومكتبة ملفات لجميع عمليات الملفات.

العمليات الأساسية

sad
استورد نظام_ملفات من "نظام_ملفات"

# كتابة ملف نصي
نظام_ملفات.اكتب("ملاحظات.txt"، "مرحباً من لغة ص!\nالسطر الثاني")

# قراءة ملف
متغير محتوى = نظام_ملفات.اقرأ("ملاحظات.txt")
اطبع_سطر(محتوى)

# التحقق من وجود ملف
إذا (نظام_ملفات.موجود("ملاحظات.txt"))
    اطبع_سطر("الملف موجود ✅")
نهاية

# حذف ملف
نظام_ملفات.احذف("ملاحظات.txt")

قراءة سطر بسطر

sad
استورد نظام_ملفات من "نظام_ملفات"

# قراءة سطر بسطر
متغير سطور = نظام_ملفات.اقرأ_سطور("ملاحظات.txt")
لكل سطر في سطور
    اطبع_سطر("> " + سطر)
نهاية

الإلحاق بملف موجود

sad
استورد نظام_ملفات من "نظام_ملفات"

# إلحاق سطر جديد
نظام_ملفات.ألحق("سجل.txt"، "سجل جديد\n")

التعامل مع المجلدات

sad
استورد نظام_ملفات من "نظام_ملفات"

# إنشاء مجلد
نظام_ملفات.أنشئ_مجلد("بيانات")

# سرد محتويات مجلد
متغير ملفات = نظام_ملفات.سرد(".")
لكل ملف في ملفات
    اطبع_سطر(ملف)
نهاية

مثال: نظام يوميات

sad
استورد نظام_ملفات من "نظام_ملفات"
استورد جسون من "جسون"

صنف يوميات
    خاص متغير _ملف = "يوميات.json"
    خاص متغير _مدخلات = []
    
    باني()
        إذا (نظام_ملفات.موجود(هذا._ملف))
            متغير بيانات = نظام_ملفات.اقرأ(هذا._ملف)
            هذا._مدخلات = جسون.فك(بيانات)
        نهاية
    نهاية
    
    دالة أضف(نص)
        متغير مدخل = {
            "وقت": الآن()،
            "نص": نص
        }
        هذا._مدخلات = هذا._مدخلات + [مدخل]
        نظام_ملفات.اكتب(هذا._ملف، جسون.ترميز(هذا._مدخلات))
    نهاية
    
    دالة اطبع()
        لكل م في هذا._مدخلات
            اطبع_سطر(م["وقت"] + ": " + م["نص"])
        نهاية
    نهاية
نهاية

متغير ي = جديد يوميات()
ي.أضف("فتحت التطبيق")
ي.أضف("اجتماع العمل")
ي.اطبع()

معالجة الأخطاء

sad
استورد نظام_ملفات من "نظام_ملفات"

دالة اقرأ_آمن(مسار)
    حاول
        ارجع نظام_ملفات.اقرأ(مسار)
    امسك (خ)
        اطبع_سطر("خطأ في قراءة الملف: " + خ)
        ارجع ""
    نهاية
نهاية

جدول عمليات الملفات

العمليةالدالةمثال
كتابةاكتب(مسار، محتوى)يخلق أو يكتب ملف
قراءةاقرأ(مسار)يرجع المحتوى كاملاً
إلحاقألحق(مسار، نص)يضيف لنهاية الملف
حذفاحذف(مسار)يحذف الملف
وجودموجود(مسار)منطقي: صحيح/خطأ
سردسرد(مجلد)قائمة الملفات

تمرين

اكتب دالة تحسب تكرار كلمة في ملف نصي وتكتب النتائج في ملف JSON.

الحل
sad
استورد نظام_ملفات من "نظام_ملفات"
استورد جسون من "جسون"

دالة عد_كلمات(مسار)
    متغير نص = نظام_ملفات.اقرأ(مسار)
    متغير كلمات = قسم(نص، " ")
    متغير تكرار = {}
    لكل ك في كلمات
        إذا (ك في تكرار)
            تكرار[ك] = تكرار[ك] + 1
        وإلا
            تكرار[ك] = 1
        نهاية
    نهاية
    نظام_ملفات.اكتب(مسار + "_تكرار.json"، جسون.ترميز(تكرار))
    ارجع تكرار
نهاية

مُرخَّص بموجب رخصة MIT