PDA

View Full Version : جستجو کردن کلمه در رشته



Saeid59_m
سه شنبه 17 مهر 1386, 07:41 صبح
سلام
من می خواهم یه کلمه رو توی یه رشته جستجو کنم .
مشکل سر عبارتهایی مثل "علی" و "علیرضا" است . می خواهم در هنگام جستجو عبارت علیرضا هم یافته شود . (البته منظورم جستجو توی بانک نیست فقط دو متغیر)

ممنون

manvaputra
سه شنبه 17 مهر 1386, 08:27 صبح
سلام دوست عزیز این کد رو من تو با رشته های انگلیسی چک کردم چون اینجا امکان چک کردن فارسیو نداشتم نمی دونم بدردت می خوره یا نه:

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
s1:Tstrings;
i:integer;
begin
s:=edit1.Text;
s1:=tstringlist.Create;
ExtractStrings([' '],[' '],pchar(s),s1);
for i:=0 to s1.Count-1 do
begin
if pos(edit2.Text,s1[i])<>0 then
memo1.Lines.Add(s1[i]) ;
end;
s1.Free;
end;

end.

ادیت یک کل رشته ای که می خوای توش جستجو کنی و ادیت دو برای وارد کردن رشته ای که می خوای اونو جستجو کنی.

Saeid59_m
سه شنبه 17 مهر 1386, 09:24 صبح
ممنون
برنامه شما معادل این خطه . البته توی فارسی درست جواب می ده .


if pos (Form1.Edit2.Text,Form1.Edit1.Text)<>0 then showmessage ('Found') Else showmessage ('Not Fount');

manvaputra
سه شنبه 17 مهر 1386, 09:41 صبح
سلام دوست عزیز کد شما فقط مشخص می کنه که آیا مثلا رشته یک در رشته دو موجود هست یا نه ولی برنامه من میاد کل زیر رشته هایی رو که مد نظر جستجو باشه رو جدا میکنه مثلا اگه رشته شما این باشه:
علی و علیرضا به مدرسه امام علی می روند.
اونوقت با کد شما به اولین علی که رسید مقدار صحیح رو بر می گردونه اما کد من سه مقدار علی/علیرضا/علی رو به شما بر می گردونه.

m-khorsandi
سه شنبه 17 مهر 1386, 12:47 عصر
function Pos(Substr: string; S: string): Integer

rasool_brn
سه شنبه 17 مهر 1386, 16:08 عصر
از تابع (Pos(s1,s2 استفاده کن.

vcldeveloper
چهارشنبه 18 مهر 1386, 01:08 صبح
از تابع (Pos(s1,s2 استفاده کن.
وقتی داشتید جواب می دادید، پست آخر تاپیک (پست 5) را دیدید؟!!