سلام. احوال؟
من یه کد داشتم که در ریچ ادیت موارد عبارتی که بهش میدیم، پیدا کنه.
کمی تغییرش دادک که محل یافتن عبارت رو در ارایه بریزه،خیلی از کد سر در نیوردم و همچنین فهمیدم با عبارت غیر انگلیسی کار نمی کنه(گیر ندید که غیر حرفه ای از آرایه استفاده کرده ام!):
var Form1: TForm1;
P:Array[1..100]of Word;
N:Word;
implementation
{$R *.dfm}
function SearchForText_AndSelect(RichEdit: TRichEdit; SearchText: string): Boolean;
var
StartPos, Position, Endpos: Integer;
begin
StartPos := 0;
with RichEdit do
begin
Endpos := Length(RichEdit.Text);
N:=0;
Lines.BeginUpdate;
while FindText(SearchText, StartPos, Endpos, [])<>-1 do
begin
Endpos := Length(RichEdit.Text) - startpos;
Position := FindText(SearchText, StartPos, Endpos, []);
Inc(StartPos, Length(SearchText));
SetFocus;
SelStart := Position;
SelLength := Length(SearchText);
Inc(N);
P[N]:=Position;
end;
Lines.EndUpdate;
end;
end;
میخوام مثلا کلمه "قال" رو در عبارتی که مثلا قَالَ داره پیدا کنم.
هیچ موردی پیدا نمی کنه. علاوه بر اینکه من یه کد سریع میخوام. این کد کارهای نمایشی انجام میده و SelStart , حتی SelLenth و تنظیم می کنه.من این کد رو برای جستجوی عبارت در فایل میخوام و میخوام در کامپوننت مخفی کار کنم و موارد رو در لیست باکس لیست کنم.
این کد عملا بیفایده هست. اگر A رو در عبارت ABGFA مثلا جستجو بدم کار می کنه ولی در مورد مثال خودم موردی پیدا نمی کنه.
اگر کد دیگه ای سراغ دارید که مثلا براش مهم نباشه الف همزه داره و ی عربیه یا فارسی و حروف اعراب و تشدید دارند یا ندارند و سرعت بالایی داشته باشه، ممنون میشم برام بذارید. من ترجیح میدم از ریچ ادیت استفاده نکنم. چون کند هست.