"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني حذف الخطوط بكفاءة من الملفات النصية الكبيرة في C#؟

كيف يمكنني حذف الخطوط بكفاءة من الملفات النصية الكبيرة في C#؟

نشر في 2025-03-22
تصفح:512

How Can I Efficiently Delete Lines from Large Text Files in C#?

c# طريقة حذف سطر ملفات نصي فعالة

]

عند معالجة الملفات النصية ، فغالبًا ما يكون من الضروري حذف خطوط محددة. تستكشف هذه المقالة حلولًا فعالة لتنفيذ هذه المهمة في C#، خاصةً للتعامل مع الملفات النصية الكبيرة.

نظرة عامة على الحل

يقوم هذا المخطط بإنشاء ملف مؤقت ونسخ الأسطر بشكل انتقائي من الملف الأصلي إلى الملف المؤقت ، باستثناء الخطوط المراد حذفها. بعد معالجة السطر المستهدف ، يستبدل الملف المؤقت الملف الأصلي ، وبالتالي حذف الخطوط غير الضرورية.

تنفيذ الكود

string tempFile = Path.GetTempFileName();

using (StreamReader sr = new StreamReader("file.txt"))
using (StreamWriter sw = new StreamWriter(tempFile))
{
    string line;

    while ((line = sr.ReadLine()) != null)
    {
        if (line != "removeme")
            sw.WriteLine(line);
    }
}

File.Delete("file.txt");
File.Move(tempFile, "file.txt");

يضمن هذه الطريقة الاحتفاظ بالخطوط الضرورية فقط أثناء استبعاد الخطوط المستهدفة من الملفات المحدثة.

اعتبارات أخرى

  • الأداء: للملفات الكبيرة ، تقلل هذه الطريقة من استخدام الذاكرة وقرص I/O عن طريق معالجة خطوط متتالية.
  • الترميز: يفترض الرمز أن الملف النصفي مشفر باستخدام UTF-8. اضبط الترميز حسب الحاجة.
  • معالجة الذاكرة: للحصول على ملفات أصغر ، قد تكون معالجة الذاكرة أكثر كفاءة. يرجى النظر في ما يلي:
File.WriteAllLines("file.txt",
    File.ReadLines("file.txt").Where(l => l != "removeme").ToList());

تتجنب هذه الطريقة إنشاء ملفات مؤقتة ، ولكن يجب تنفيذها على الفور باستخدام Tolist ().

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3