كيف اخذ 20 سطر من مكون memo و استرادها 20 ,20 حتى الأنتهاء
#1
السلام عليكم ورحمة الله وبركاته

في مشروعي عندي Memo به نص أود تعامل معه
وأود استعمال خاصية line وأخذ في كل دورة 20 سطر (line) الأولى وتعامل معها
والإستمرار في الدوران حى الإنتهاء
الرد
#2
محاولة بسيطة

PHP كود :
var u,i,p,k:Integer;
begin
  u
:=20; p:=0;
  
begin
k
:=0;
 
repeat
  
for i:=p to u do    begin
memo1
.Lines.Strings[i];
ShowMessage(memo1.Lines.Strings[i]);
ShowMessage(IntToStr(i));
ShowMessage('p='+IntToStr(p));
end;
p:=u+1;u:=u+20;
k:=k+1;
ShowMessage('k='+IntToStr(p));
ShowMessage('Memo1.Lines.Count='+IntToStr(p));
until k=Memo1.Lines.Count;
end;
 
end; 

إستعملت خاصية ShowMessage للتأكد Smile
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
الرد
#3
[color="purple"]بارك الله فيك أخي لؤي نشاط واضح في المنتدى

جعله الله في ميزان حسناتك[/color]
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#4
السلام عليكم
شكرا أخي على المحاولة
أظن أنك لم تفهم قصدي
عندي نص من كلمات
كود :
delphi vb rami dz arab four delphi vb rami dz arab four delphi vb rami dz arab four delphi vb rami dz arab four delphi vb rami dz arab four delphi vb rami dz arab four
مثال النص يتكون من 88 كلمة وأنا في كل عملية أحتاج لي 20 كلمة
معناها النتيجة ستكون
20
20
20
20
8
لأن عدد الكلمات 88
وليس بالظرورة استعمال loop
وشكرا لكم
الرد
#5
السؤال غير واضح !!!!
الرد
#6
السلام عليكم
لم أفهم سؤالك أخي
تريد نقل 20 سطر ل TMemo ثاني؟
الرد
#7
عندي قائمة كلمات عددها غير ثابت أود استرادها ة 20 ,20 حتى الأنتهاء
مثال
PHP كود :
var i, j:Integer;
SL: TStringList;
begin
  SL 
:= TStringList.Create;
  try
    for 
i := 0 to Memo1.Lines.Count -1 do
    
begin
      SL
.Add(Memo1.Lines.Strings[i]);
      if 
SL.Count = 20  then
      begin
        Memo2
.Text := SL.Text;
        
SL.Clear
      end 
else
      for 
j := 1 to 19 do
      if 
SL.Count = j then
      begin
        Memo3
.Text := SL.Text;
        
SL.Clear;
      
end;
    
end;
  finally
    
SL.Free;
 
end;
end; 
الرد
#8
كود :
procedure TForm1.Button1Click(Sender: TObject); var SL : TStringList; i , c , p : integer; begin SL :=TStringList.create; i := 0; c := 20; p := 1; try repeat for i := p to c do begin SL.Add(Memo1.Lines.Strings[i]); end; p := p + 20 ; c := c + 20 ; showmessage('pause'); {do something with SL} until p >= Memo1.Lines.count; finally SL.free; end; end;
الرد
#9
السلام عليكم
شكرا أخي yassine_hell حل جيد مع تعديل طفيف بارك الله فيك
كود :
var SL : TStringList; i , c , p : integer; begin SL :=TStringList.create; i := 0; c := 19; p := 0; try repeat for i := p to c do begin SL.Add(Memo1.Lines.Strings[i]); end; p := p + 20 ; c := c + 20 ; showmessage('pause'); {do something with SL} until p >= Memo1.Lines.count; finally SL.free; end; end;
هل من حل اخر
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم