PDA

View Full Version : جستجو در فایل(کمک فوری)



Future
دوشنبه 30 آبان 1384, 17:27 عصر
سلام دوستان
من یک برنامه می خوام بنویسم که به این قرار است
در داخل یک سی دی چیزی در حدود 1000 تا فایل با پسوند mht و html است . حالا کاربر می خواد بعد از وارد کردن یک نام لیست تمام فایلهایی که در داخل آن کلمه تایپ شده است را نشان بدهد .لطفا اگه کسی در این زمینه چیزی می دونه مرا راهنمایی کند

mzjahromi
دوشنبه 30 آبان 1384, 17:42 عصر
خوب باید فایلها رو تک تک باز کنی و به دنبال حرف اول کلمه بگردی وقتی پیدا کردی ببینی دومی پشت سرش هست یا نه و ... دقیقا مثل یک DFA
البته شما نگفتید که کجا ایراد دارید ولی این روال کلیه

Future
دوشنبه 30 آبان 1384, 18:02 عصر
سلام دوست عزیز
خوب چطوری باید فایلها را باز کنم این را بلد نیستم چطوری باز کنم و چطوری جستجو کنم
میشه یک مثال بزنی
اگه ممکنه مکم کنید چون خیلی گیرم

اَرژنگ
دوشنبه 30 آبان 1384, 18:43 عصر
ایا ویندوز اکش پیه؟
مایکروسافت دسکتاپ گشتن مجّّانی را میتوانید استفاده کنید.
اگر اکس پی نیست، برایه جستجویه سریع باید اوّل فایلها را ایندکس کرده باشید. اگر سرعت مهم نیست میتنونید فایلها را یکی گیک مثل تکست فایل باز کنید و بعدش هم pos دنبالش بگردید. یک روش خیلی بد که میتوانید راحت امتحان کنید :


uses
Classes;
function IsStrInFile( FileName , SearchStr : string ):boolean;
var
Strings : TStrings
str :string;
begin
Strings := TStringList.Create;
try
Strings.LoadFile( FileName );
Str = Strings.Text;
result := pos(SearchStr,Str)>0;
finally
Strings.Free;
end;
end;

این روش خوب نیست ولی فعلاً کارتان را راه مؤیندازه تا یکی روش بهتر پیشنهاد کنه و یا من یک روش بهتر و آماده پیدا کنم.

Naficy
دوشنبه 30 آبان 1384, 21:01 عصر
در مورد جستجو درون فایلهای html و mht، جستجو به صورت ساده متنی امکانپذیر نیست. زیرا در این فایلها متون با قواعدی خاص ذخیره می شوند. حداقل دو مشکل اساسی شما را مجبور می کند که هنگام جستجو درون این فایلها از یک پارسر زبان html کمک بگیرید:
1- وجود تگها: اگر مثلا کلمه html یا Body را به صورت متنی درون فایلهای html جستجو کنید همه فایلها حاوی آن خواهند بود. حتی فایلهایی که هنگام بازشدن درون مرورگر خالی به هیچ عنوان چنین کلمه ای ندارند. این کلمات جزء زبان html به کار رفته و معمولا در جستجو ها باید نادیده گرفته شوند.
2 - وجود جانشینها: تمامی حروف را در html می توان به صورت ترکیبی از کاراکتر & و # و یک عدد و درنهایت یک کاراکتر ; ذخیره کرد. هر چند اینکار در مورد متون انگلیسی غیر متعارف است، اما در مورد کاراکترهای خاص و متون غیر انگلیسی رواج دارد.
3 - وجود کدپیجهای متفاوت. بخصوص در صورتی که در مورد متون غیر انگلیسی صحبت می شود.
و....


البته ظاهرا دوستمان Future با توجه به این مشکلات سوال رو پرسیدن. امیدوارم این توضیح حداقل ادامه اینگونه جوابها رو متوقف کنه.