اذهب إلى المحتوى

السؤال

نشر

كيف يمكنني قراءة ملف بإستخدام node.js سطر بسطر بحيث يمكنني تنفيذ دالة ما على كل سطر داخل الملف لأن الملف كبير وأريد تطبيق الدالة على كل سطر على حده.
 

Recommended Posts

  • 0
نشر

يوجد مكتبة مخصصة لقراءة الملفات سطراً سطراً تدعى readline استخدامها بالشكل التالي:

const fs = require('fs');
const readline = require('readline');

const rl = readline.createInterface({
  input: fs.createReadStream('sample.txt'),  // الملف الذي يحوي البيانات
  crlfDelay: Infinity
});

rl.on('line', (line) => {    // لكل سطر من الملف سوف تتم الطباعة سطراً بسطر
  console.log(`Line from file: ${line}`);
});

تم تمرير crlfDelay: Infinity لفصل المحارف الخاصة:

CR LF ('\r\n') in input.txt as a single line break.

للدلالة على سطر جديد.

يوجد طرق مختلفة يمكنك إيجادهم على رابط التوثيق: nodejs.org/api/readline

  • 0
نشر

منذ Node.js v0.12 واعتبارًا من Node.js v4.0.0 ، هناك وحدة أساسية مستقرة للقراءة. إليك أسهل طريقة لقراءة الأسطر من ملف ،  بدون تثبيث إي مكتبات خارجية,

مثال:

const fs = require('fs');
const readline = require('readline');

async function processLineByLine() {
  // إستدعاء الملف المراد فراءته
  const fileStream = fs.createReadStream('input.txt');
  
  
 // إستدعاء الواجهة و الربط مع الملف اللازم للقراءة
  const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity
  });
  

  for await (const line of rl) {
    //  قراءة سطر بسطر
    console.log(`Line from file: ${line}`);
  }
}

// إستدعاء الدالة لبدء القراءة
processLineByLine();

يمكنك الإطلاع على المزيد من المعلومات حول الوحدة readline في nodejs في  موقع التوثيق الرسمي ل nodejs من  هنا

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...