ورود

View Full Version : جستجو در فایل های تکست Txt



1072300
دوشنبه 21 تیر 1389, 21:46 عصر
با سلام به همه دوستان و اساتید محترم
تعداد نا مشخصی فایل تکست در پوشه ای به نام report قرار دارد که هر روز تعداد زیادی از این فایل به آن اضافه می شود می خواهم با زبان دلفی برنامه ای بنویسم که در متن این فایل ها کلمه مورد نظر را که در Edit وارد شده است را جستجو کند و نتیجه را در یک Memo نشان دهد آیا کسی می تواند راهنمایی ام کند در صورت امکان با سورس راهنمایی بفرمایید.
متشکرم.:گیج::عصبانی++:

Felony
دوشنبه 21 تیر 1389, 22:12 عصر
یک نمونه کد براتون نوشتم :

var
FilePath: String;
Search: TSearchRec;
StrList: TStringList;
begin
FilePath:= 'D:\';
StrList:= TStringList.Create;
if FindFirst(FilePath+ '\*.txt', faNormal, Search)= 0 then
try
repeat
StrList.Clear;
StrList.LoadFromFile(FilePath+ Search.Name);
if StrList.IndexOf('Sample text for search') >=0 then
Memo1.Lines.Add(Search.Name);
until (FindNext(Search)<> 0);
finally
StrList.Free;
end;
end;

1072300
سه شنبه 22 تیر 1389, 21:06 عصر
متشکرم از پاسخ شما
اما این برنامه اجرا نمی شود و از خط 8 خطای زیر را می گیرد یک سوال دیگر هم داشتم آیا می شود exe برنامه را در کنار پوشه report قرار دهم که برنامه بدون آدرس دهی اجرا شود
متشکرم از راهنمایی شما
اما خطا

'Error] Unit1.pas(37): Undeclared identifier: 'faNormal]


:گیج::خجالت::خجالت:

Felony
سه شنبه 22 تیر 1389, 21:58 عصر
متشکرم از پاسخ شما
اما این برنامه اجرا نمی شود و از خط 8 خطای زیر را می گیرد یک سوال دیگر هم داشتم آیا می شود exe برنامه را در کنار پوشه report قرار دهم که برنامه بدون آدرس دهی اجرا شود
متشکرم از راهنمایی شما
اما خطا

'Error] Unit1.pas(37): Undeclared identifier: 'faNormal]


:گیج::خجالت::خجالت:


برای رفع خطا SysUtils رو به uses اضافه کنید ، برای اینکه exe رو کنار پوشه بزارید هم کد رو به صورت زیر تغییر بدید :

var
FilePath: String;
Search: TSearchRec;
StrList: TStringList;
begin
FilePath:= ExtractFilePath(Application.ExeName)+ 'Report\';
StrList:= TStringList.Create;
if FindFirst(FilePath+ '*.txt', faNormal, Search)= 0 then
try
repeat
StrList.Clear;
StrList.LoadFromFile(FilePath+ Search.Name);
if StrList.IndexOf('Sample text for search') >=0 then
Memo1.Lines.Add(Search.Name);
until (FindNext(Search)<> 0);
finally
StrList.Free;
end;
end;

hassan p.b
جمعه 05 آذر 1389, 20:01 عصر
http://www.barnamenevis.org/forum/showthread.php?t=252634&highlight=%D9%81%D8%A7%DB%8C%D9%84+txt+%D8%AF%D9%8 4%D9%81%DB%8C&page=2

mojtabaee
یک شنبه 03 بهمن 1389, 05:06 صبح
سلام - نمیشه عزیز جان:لبخند: