ورود

View Full Version : خواندن خط مورد نظر میمو



francosoft
سه شنبه 10 آذر 1383, 11:12 صبح
سلام

یک شی میمو در دلفی داریم

می خواهیم وقتی دستور می دهیم برنامه برود و در یک شی میمو که در آن چندین خط چیز نوشته شده است را خط مورد نظر ما را در یک مثلا ادیت باکس نشون بده.

مثلا دستور می دهیم بره خط 10 و بره و خط ده را فقط نشون بده . آن هم در یک ادیت باکس

منتظرم

vcldeveloper
چهارشنبه 11 آذر 1383, 05:01 صبح
با استفاده از این تابع می تونید متن موجود در یک خط خاص رو بدست بیارید:


function GetLineStr(S: string; LineNumber: integer): string;
const
SubStr = #13#10;
var
CurPos, LastPos,
CurLine,
SubStrSize : integer;
Found : boolean;
begin
CurLine := 0;
LastPos := 0;
Found := False;
SubStrSize := SizeOf(char)* Length(SubStr);

if S = '' then
Exit;

CurPos := PosEx(SubStr, S);
if CurPos = 0 then
begin
Result := S;
Exit;
end;

while (not Found) do
begin
Inc(CurLine);
if CurLine = LineNumber then
begin
Result := Copy(S, LastPos + SubStrSize, (CurPos - SubStrSize) - LastPos);
Found := True;
end
else
begin
LastPos := CurPos;
CurPos := PosEx(SubStr, S, CurPos + SubStrSize);
//if string is finished or an illigal line number is requested
if CurPos = 0 then
begin
Result := '';
Found := True;
end;
end;
end;
end;


مثال


Edit1.Text := GetLineStr(Memo1.Text,5);

که خط پنجم از Memo1 رو بر می گردونه.

البته باید واحد StrUtils رو هم به بخش Uses اضافه کنید (در دلفی 7)

francosoft
چهارشنبه 11 آذر 1383, 10:41 صبح
سلام و بسیار بسیار متشکرم دوست عزیز

موفق باشی :)

DrDelphi2003
چهارشنبه 11 آذر 1383, 16:52 عصر
memo یک خاصیت به نام lines داره که اجازه می ده به هر خط از memo دست رسی داشته باشی و خیلی کارهای دیگه هم واست انجام میده!! نه !

vcldeveloper
پنج شنبه 12 آذر 1383, 01:51 صبح
memo یک خاصیت به نام lines داره که اجازه می ده به هر خط از memo دست رسی داشته باشی و خیلی کارهای دیگه هم واست انجام میده!! نه !
خیر، Lines در حالت عادی یک خط خاص رو بر نمیگردونه!

Panje Tala
یک شنبه 15 آذر 1383, 13:47 عصر
با سلام
میتونی به راحتی از کد زیر استفاده کنی:


edit1.Text:=memo1.Lines.Strings[row-1];

row شماره سطری است که میخواهی محتویات آنرا نشون بدی.

vcldeveloper
دوشنبه 16 آذر 1383, 01:40 صبح
edit1.Text:=memo1.Lines.Strings[row-1];
جالب بود، مرسی

مهدی کرامتی
دوشنبه 16 آذر 1383, 06:04 صبح
آقا/خانم sma_eslami:

لطفا از این ببعد اسم های جامد مثل Memo را به فارسی ننویسید (میمو). وقتی عنوان تاپیک را خواندم تصور کردم بحث تاپیک درباره میمون است!

DrDelphi2003
سه شنبه 17 آذر 1383, 11:37 صبح
البته ببخشیدها من هم نگفتم که خود lines, گفتم متد ها و خواص زیادی داره. نه؟
:strange: