PDA

View Full Version : مقاله ای در مورد دستورات و روشهای جستجو در دلفی



JavanSoft
چهارشنبه 26 فروردین 1383, 13:15 عصر
در ادامه سلسله مقاله های راهنمای برنامه نویسان ،مقاله ای برای بررسی نحوه جستجوی اطلاعات در دلفی آماده کردم که متاسفانه چون جدول داشت نتونستم در این فروم قرار دهم
علاقه مندان به آدرس
http://wwwModiranGroup.ir
مراجعه فرمایید

درضمن اگر روشهای پیشنهادی خود را برای جستجو بفرمایید ممنون می شوم

JavanSoft
دوشنبه 31 فروردین 1383, 12:14 عصر
از لطف همه دوستان ممنون و متشکرم .... اما دلیل اینکه این مقاله را نوشتم این نبود که تشویق بشوم ... بلکه با حاج مهدی بر سر نوشتن مقاله ها صحبت که کردیم ... ایشان گفتند که باید خودتون شروع کنید .... من هم این مفاله رو نوشتم .... البته برنامه کوچکی هم آماده کردم که بزودی ............

اما خواهشم از دوستان
اگر شما هم روش جستجویی می دانید در همین پست بفرمائید ... اینکار باعث می شود که استارت خوبی برای تبادل تکنیکها زده شود

MFCGalaxy
دوشنبه 31 فروردین 1383, 21:07 عصر
خواستم بدونم شما که مقاله را در بخش اعلانات گذاشتین ... اشکال نداره که من هم مقالات ASP.net ام را اینجا بگذارم ؟
اصلا چرا مقاله ی شما در همون بخش دلفی نیستش ؟؟ ها ؟
مدیریت پاسخگو !! جواب دهد لطفا !

JavanSoft
سه شنبه 01 اردیبهشت 1383, 10:58 صبح
من هم مقالات ASP.net ام را اینجا بگذارم ؟
مقاله را برای مدیر بخش ارسال کنید

اصلا چرا مقاله ی شما در همون بخش دلفی نیستش ؟؟ ها ؟
در همان بخش دلفی است ..اما برای تشویق دیگران به انتقال تجربیات بصورت اعلان در آمده است

مدیریت پاسخگو !! جواب دهد لطفا !
مدیریت سایت یا بخش ؟

spicirmkh
شنبه 26 اردیبهشت 1383, 16:46 عصر
سلام دوستان

ایا روی فیلد memo می شود جستجو یا فیلتر گذاشت

با تشکر
مرتضی

JavanSoft
پنج شنبه 21 خرداد 1383, 14:30 عصر
ایا روی فیلد memo می شود جستجو یا فیلتر گذاشت
ببخشید اگر دیر سوالتونو دیدم
هم بله هم نه
فیلد Memo اگر به یک Rich Editمتصل نباشد براحتی امکان پذیر است
اما در بدلیل کد های RichEditاین کار در این حال کمی مشکل است

من تا قبل از آشنایی با SDACبا یک حلقه While و تابع Posاینکار را می کردم
اما اکنون مانند یک متن معمولی با یک Memo برخورد می کنم

NOROOZY
یک شنبه 24 خرداد 1383, 07:03 صبح
آقا بخش دوم مقاله تون پس کی حاضر میشه ؟؟؟ :roll:

oracle
چهارشنبه 27 خرداد 1383, 12:20 عصر
جناب آقای وکیلی
خیلی ممنون از این مطلبتون
باید به دوستان دیگه عرض کنم که 1 روش دیگر هم برای جستجو هست. آن هم استفاده از ADOQuery1 است. که می خواهم تجربیات نه چندان زیادم رو در اختیار دوستان قرار بدهم.

JavanSoft
چهارشنبه 27 خرداد 1383, 13:26 عصر
بخش دوم مقاله را بصورت عملی پیاده کردم انشاالله 2 ماه دیگه شروع به نوشتن می کنم

باید به دوستان دیگه عرض کنم که 1 روش دیگر هم برای جستجو هست. آن هم استفاده از ADOQuery1 است. که می خواهم تجربیات نه چندان زیادم رو در اختیار دوستان قرار بدهم.
حتما خوشحال می شویم

oracle
چهارشنبه 27 خرداد 1383, 13:50 عصر
ولی کجا بنویسم.
:(

JavanSoft
چهارشنبه 27 خرداد 1383, 20:35 عصر
همینجا
اگر خوب بود به مقالات منتقل می شود و یا در صورت تعدد عکس می توانید ارسال کنید تا در همان سایت UPloadکنم و یا خودتان یه جایی بنویسید و در اینجا ادرس دهید

JavanSoft
دوشنبه 05 مرداد 1383, 20:05 عصر
خدمت دوستان عزیز عرض کنم که
بنا بر یکسری مطالبی که در همین مقاله خواندید و در عین حال تکنیک های دیگر برنامه ای نوشتم که بروی هر نوع پایگاهی سوار و به شما اجاز هر نوع جستجویی را می دهد
تصمیم داشتم انرا در سایت بگذارم اما با توجه به اینکه هیچ کس (با وجود اعلام بنده در مورد درخواست همکاری دیگر دوستان ) هیچ نوع تکنیکی ارائه نکرد از این کار منصرف شدم .قسمت دوم مقاله را هم ایضا

fahimi
سه شنبه 06 مرداد 1383, 03:57 صبح
در مورد Locate متاسفانه بیشتر از 12 کارکتر از فیلد نمی تواند جستجو کند در صورتیکه بیشتر از 12 کارکتر باشد برنامه دچار خطا می شود

Mah6447
چهارشنبه 14 مرداد 1383, 22:49 عصر
سلام به همگی . اکر دوست داشتید این رو هم آزمایش کنید
فقط کافیست که جزپی از کلمه مورد نظر را چه از ابتدا و چه از میانه کلمه رادرEdit Box تایپ کنیدودر ListBoxنتیجه را مشاهده کنید . منتظر پیشنهادهای بهتر شما عزیزان هستم ..... :)

Function ZipStr(Str:String):String;
var Str1:String;
TolStr:Integer;
begin
Str1:='';
For tolStr:=1 To Length(Str) Do
begin
If Str[tolStr]<>' ' Then
Str1:=Str1+Str[tolStr];
end;
ZipStr:=Str1;

End;

function SearchStrZip(Xstr,Zstr:String):Boolean ;
var int1,int2,i,t:Integer;
Xs,Zs,Str:String;
begin
Xs:=ZipStr(Xstr);
Zs:=ZipStr(Zstr);
i:=1;
If Length(Xs)<=Length(Zs) Then
begin
SearchStrZip:=False;
For int1:=1 To Length(Zs) Do
begin
Str:='';
If Xs[i]=Zs[Int1] then
Begin
i:=int1;
For Int2:=1 To Length(Xs) Do
begin
If Zs[i]=Xs[Int2] Then
Str:=Str+Xs[Int2] Else i:=0;
i:=i+1;
If Xs=Str Then SearchStrZip:=True ;
end;
end;
end;

end;

end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var MasStr:String;
i:Integer;
begin
If Edit1.Text<>'' Then
begin
i:=0;

With Table1 Do
begin
ProgressBar1.Max:=RecordCount;
DisableControls;
ListBox1.Clear;
First;
While Not Eof Do
begin
If SearchStrZip(ZipStr(Edit1.Text),ZipStr(FieldValues['Family']))=True
Then
ListBox1.Items.Add(FieldValues['Name']+'----'+FieldValues['Family']);
ProgressBar1.Position:=ProgressBar1.Position+1;
Next;
end;
EnableControls;
ProgressBar1.Position:=0;
end;
end;
end;

ali643
چهارشنبه 14 مرداد 1383, 23:16 عصر
in hamin code balast ke in joori khana tar hasteshj


Function ZipStr(Str:String):String;
var Str1:String;
TolStr:Integer;
begin
Str1:='';
For tolStr:=1 To Length(Str) Do
begin
If Str[tolStr]<>' ' Then
Str1:=Str1+Str[tolStr];
end; \

ZipStr:=Str1;

End;

function SearchStrZip(Xstr,Zstr:String):Boolean ;
var int1,int2,i,t:Integer;
Xs,Zs,Str:String;
begin
Xs:=ZipStr(Xstr);
Zs:=ZipStr(Zstr);
i:=1;
If Length(Xs)<=Length(Zs) Then
begin
SearchStrZip:=False;
For int1:=1 To Length(Zs) Do
begin
Str:='';
If Xs[i]=Zs[Int1] then
Begin
i:=int1;
For Int2:=1 To Length(Xs) Do
begin
If Zs[i]=Xs[Int2] Then
Str:=Str+Xs[Int2] Else i:=0;
i:=i+1;
If Xs=Str Then SearchStrZip:=True ;
end;
end;
end;

end;

end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var MasStr:String;
i:Integer;
begin
If Edit1.Text<>'' Then
begin
i:=0;

With Table1 Do
begin
ProgressBar1.Max:=RecordCount;
DisableControls;
ListBox1.Clear;
First;
While Not Eof Do
begin
If SearchStrZip(ZipStr(Edit1.Text),ZipStr(FieldValues ['Family']))=True
Then
ListBox1.Items.Add(FieldValues['Name']+'----'+FieldValues['Family']);
ProgressBar1.Position:=ProgressBar1.Position+1;
Next;
end;
EnableControls;
ProgressBar1.Position:=0;
end;
end;
end;

Mohammad S
پنج شنبه 15 مرداد 1383, 00:20 صبح
با توجه به اینکه جستجو روی فیلدهای عددی کمی مشکل است و نمی توان از روش زیر استفاده کرد،

Ajnas_Show.Edit1.Text+'*'
چه روشی برای فیلدهای عددی پیشنهاد می کنید که با مثلا وارد کردن عدد 1، تمام رکوردها با مقادیر، 1، 11،12،124،156، و .... را نشان دهد (البته با دستور Filter بهتر است)
با تشکر :?:

oracle
پنج شنبه 09 مهر 1383, 23:55 عصر
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Text:='SELECT* FROM namayandeh WHERE n_moder like'+#39+'%'+f1.Text+'%'+#39+' or n_foroshgah like'+#39+'%'+f1.Text+'%'+#39;
ADOQuery1.Active:=true;



من برای جستجو از این دستور که مربوط به SQL هست استفاده می کنم که هم تو عدد و هم تو قسمتی از نوشته کار میکنه.
لازم به توضیح هست که اگر #39 را بردارید عدد می شه جستجو کرد. و اگر ٪ رو بردارید اگر همانند نوشته f1 باشه برامون نشون می ده.

saman.k
دوشنبه 27 مهر 1383, 13:09 عصر
سلام
اینم به نظر من اومد.

Procedure Edit1.change

table1.findnearest([edit1.text]) f

به شرطه اینکه فیلد مورد نظر index شده باشد.جالبه که میشه بر اساس چند فیلد هم جستجو کرد.

vahid456
شنبه 10 بهمن 1383, 11:08 صبح
من با استفاده از ado conection پایگاه داده ای ساخته ام که بتوانم آنرا بر روی شبکه محلی به اشتراک بگذارم
آیا با این روش اجازه دسترسی همزمان به کاربران داده مشود؟
پیشاپیش از راهنمائی شما سپاسگذارم :flower:

JavanSoft
چهارشنبه 12 مرداد 1384, 14:03 عصر
این مقاله خدمت شما
انشاالله بعد از راه اندازی سایت جدید مابقی مقالات را در انجا خواهید یافت

JavanSoft
دوشنبه 25 مهر 1384, 12:48 عصر
از ادرس WWW.ModiranGroup.Com استفاده کنید

JavanSoft
دوشنبه 12 دی 1384, 09:08 صبح
دوستان عزیز
روشهای جستجو بحث ساده ای نیست
آنچه شما در سایت ModiranGroup.Com می توانید ببینید امکانات پایه دلفی برای جستجو می باشد که با چند ابتکار درهم شده است

مثالهایی از انچه من فکر می کردم در ادامه مطرح شود بدین گونه می تواند باشد

1) یک ورودی (با قابلیت Autocompleate) که چنانچه کلمه ای در ان وارد شود با جستجوی تمامی اطلاعات نتیجه را موضوع بندی و ارائه نماید و در صورت انتخاب مستقیما به سراغ مورد برود

2) همان مساله برای بانکهای Master/Detail تا حد اقل 3 سطح

3) همان مساله برای همان بانکها تا N سطح

4) یک ورودی که فرمتی شبیه به Google را پارس و سپس نسبت به فرامین خطی وارد شده واکنش نشان داده و نتایج را با Rankingارائه کند

rmb_ali
سه شنبه 23 خرداد 1385, 09:23 صبح
در ادامه سلسله مقاله های راهنمای برنامه نویسان ،مقاله ای برای بررسی نحوه جستجوی اطلاعات در دلفی آماده کردم که متاسفانه چون جدول داشت نتونستم در این فروم قرار دهم
علاقه مندان به آدرس
http://wwwModiranGroup.com (http://wwwModiranGroup.com/SearchDelphi.htm)
مراجعه فرمایید

درضمن اگر روشهای پیشنهادی خود را برای جستجو بفرمایید ممنون می شوم
دوست عزیز میشه این لینک رو یکبار چک کنید

آقا تازه فهمیدم چرا اینهمه پست حذف شده داره این تاپیک اگر میشه اون لینک صفحع اول را نیز تصحیح بفرمایید