AzLearn

تمرين إعادة البناء

File Line Counter

أعد كتابة أداة TypeScript تحسب الأسطر والكلمات والمحارف في ملف.

typescript ~12 دقيقة مبتدئ
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
// Run with: npx tsx 06-file-line-counter.ts <path> (requires @types/node).
import * as fs from "node:fs";

type FileStats = {
  lines: number;
  words: number;
  characters: number;
};

function countText(text: string): FileStats {
  const trimmed = text.trim();

  return {
    lines: text.length === 0 ? 0 : text.split(/\r?\n/).length,
    words: trimmed.length === 0 ? 0 : trimmed.split(/\s+/).length,
    characters: text.length,
  };
}

function main(): void {
  const filePath = process.argv[2];

  if (!filePath) {
    console.log("Usage: npx tsx 06-file-line-counter.ts notes.txt");
    return;
  }

  const text = fs.readFileSync(filePath, "utf8");
  const stats = countText(text);

  console.log(`Lines: ${stats.lines}`);
  console.log(`Words: ${stats.words}`);
  console.log(`Characters: ${stats.characters}`);
}

main();
اكتب هنا