• 0

كيف أحسب عدد الأسطر الموجودة في ملف معين في روبي؟

أريد حساب عدد الأسطر الموجودة في ملف معين بدون تحميل كامل الملف إلى ذاكرة في روبي، فما هي أسهل طريقة لفعل ذلك في لغة روبي؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هنالك العديد من الطرق التي ستمكنك من حساب عدد الأسطر الموجودة في ملف معين، فإذا كنت على بيئة يونكس يمكنك ببساطة استخدام الأمر wc -l والذي لن يُحمّل كامل الملف إلى الذاكرة ويمكنك استخدامه داخل روبي كما في المثال التالي حيث أن المتغير filename يحتوي على مسار الملف المطلوب:

filename = 'a_file/somewhere.txt'
line_count = `wc -l "#{filename}"`.strip.split(' ')[0].to_i
p line_count

أو يمكنك استخدام دوال foreach و inject لقراءة الملف سطر سطر وتجنب قراءة كامل الملف مرة واحدة كما في المثال التالي:

count = File.foreach(filename).inject(0) {|c, line| c+1}

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن