77 خطوط
1.9 KiB
JavaScript
77 خطوط
1.9 KiB
JavaScript
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const readline = require("readline");
|
|
|
|
const filePath = path.join(__dirname, "SadenTel_Documents.csv");
|
|
|
|
// خواندن فایل CSV
|
|
const fileContent = fs.readFileSync(filePath, "utf8");
|
|
|
|
// تبدیل CSV به آرایه اسناد
|
|
const lines = fileContent.trim().split(/\r?\n/);
|
|
|
|
const documents = lines.slice(1).map(line => {
|
|
const columns = line.split(",");
|
|
|
|
return {
|
|
row: columns[0],
|
|
title: columns[1],
|
|
id: columns[2]
|
|
};
|
|
});
|
|
|
|
// ایجاد محیط دریافت ورودی
|
|
const rl = readline.createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout
|
|
});
|
|
|
|
// جستوجوی اسناد
|
|
function searchDocument(query) {
|
|
const searchText = query.trim().toLowerCase();
|
|
|
|
const results = documents.filter(doc =>
|
|
doc.title.toLowerCase().includes(searchText) ||
|
|
doc.id.toLowerCase().includes(searchText)
|
|
);
|
|
|
|
if (results.length === 0) {
|
|
console.log("\nسندی پیدا نشد.");
|
|
return;
|
|
}
|
|
|
|
console.log(`\nتعداد نتایج: ${results.length}\n`);
|
|
|
|
results.forEach(doc => {
|
|
console.log("------------------------------");
|
|
console.log("عنوان سند:", doc.title);
|
|
console.log("شناسه داخلی:", doc.id);
|
|
console.log("ردیف:", doc.row);
|
|
});
|
|
|
|
console.log("------------------------------");
|
|
}
|
|
|
|
// دریافت عبارت جستوجو
|
|
function askSearch() {
|
|
rl.question("\nنام یا شناسه سند را وارد کنید (برای خروج exit): ", query => {
|
|
|
|
if (query.trim().toLowerCase() === "exit") {
|
|
rl.close();
|
|
return;
|
|
}
|
|
|
|
if (query.trim() === "") {
|
|
console.log("لطفاً عبارت جستوجو را وارد کنید.");
|
|
} else {
|
|
searchDocument(query);
|
|
}
|
|
|
|
askSearch();
|
|
});
|
|
}
|
|
|
|
console.log("===== SadenTel Document Search =====");
|
|
askSearch();
|