diff --git a/search.js b/search.js new file mode 100644 index 0000000..2c897ce --- /dev/null +++ b/search.js @@ -0,0 +1,76 @@ + +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();