কম্পিউটার টিউটোরিয়াল

টেক্সট ফাইল লোড করে ক্যারেক্টার কাউন্ট - Node.js

Node.js-এ fs মডিউল ব্যবহার করে এক্সটার্নাল টেক্সট ফাইল পড়ে তার ক্যারেক্টার সংখ্যা বের করা।

ফাইল স্ট্রাকচার

project/
├── script.js
└── data.txt

সমাধান

const fs = require('fs');

// সিনক্রোনাস (সহজ)
const countCharsSync = (filePath) => {
  try {
    const data = fs.readFileSync(filePath, 'utf-8');
    return data.length;
  } catch (err) {
    console.error('Error reading file:', err.message);
    return -1;
  }
};

// অ্যাসিনক্রোনাস (প্রমিস ভিত্তিক)
const countCharsAsync = (filePath) => {
  return new Promise((resolve, reject) => {
    fs.readFile(filePath, 'utf-8', (err, data) => {
      if (err) reject(err);
      else resolve(data.length);
    });
  });
};

// অ্যাসিনক্রোনাস (async/await)
const countCharsAwait = async (filePath) => {
  try {
    const data = await fs.promises.readFile(filePath, 'utf-8');
    return data.length;
  } catch (err) {
    console.error('Error:', err.message);
    throw err;
  }
};

// ব্যবহার
console.log(countCharsSync('./data.txt')); // 399

// অ্যাসিনক্রোনাস ব্যবহার
countCharsAwait('./data.txt')
  .then(count => console.log('Async count:', count))
  .catch(err => console.error(err));

মডিউল সিস্টেম (ES Modules)

// package.json-এ "type": "module" যোগ করুন
import fs from 'fs/promises';

const countChars = async (filePath) => {
  const data = await fs.readFile(filePath, 'utf-8');
  return data.length;
};

দ্রষ্টব্য

  • utf-8: এনকোডিং স্পেসিফাই করা জরুরি
  • Sync vs Async: সার্ভার এনভায়রনমেন্টে অ্যাসিনক্রোনাস পছন্দনীয়
  • Error handling: ফাইল নেই, পারমিশন ইত্যাদি হ্যান্ডল করুন

উৎপাদন

399
  1. জাভাস্ক্রিপ্টে File এবং FileReader

  2. জাভাস্ক্রিপ্টে str1-এর ক্যারেক্টার str2-এ কতবার এসেছে গণনা

  3. n-র সन्नিকট এবং m দিয়ে বিভাজ্য সংখ্যা খুঁজে বের করা C++-তে

  4. PHP প্রোগ্রাম: স্ট্রিং-এ কতগুলো ক্যারেক্টার আছে বের করা