delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف ينسخ نص بين وسمين <1> <4>
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته
أود طريقة لنسخ الكلمات بين <1> <4>
كود :
<1>delphi3<1> <1>delphi3<2> <1>delphi3<3> <1>delphi44<4> <1>delphi4<4>
باستعمال pos أو طريقة أخرى
هل تريد هكذا كود

كود :
procedure TForm1.Button1Click(Sender: TObject); var s1:ShortString; begin // <1>delphi44<4> if Pos('>','<1>delphi44<4>' )>0 then s1 := Copy('<1>delphi44<4>',Pos('>','<1>delphi44<4>' ) + 1 ,length('<1>delphi44<4>' )-Pos('>','<1>delphi44<4>' ) -3 ) ; Edit1.Text :=s1 ; end;
شكرا أخي على المحاولة
القيمة delphi44
ليست ثابته أود نسخ مابين الوسمين <1> <4>
هذا افضل
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
 var
 
s1, s2, s3:string; i, t:Integer;

begin        // <1>delphi44<4>
    
s1 := '<1>delphi44999<4>'  ;
 for 
i := 1 to length(s1)  do
        case 
s1[i] of
         
'a'..'z' :s2 := s2 + s1[i]  ;
         
'A'..'Z' :s2 := s2 + s1[i]  ;

        
end;
        
t :=Pos(s2, s1)   ;
        if 
t>0 then
         s3 
:=     Copy(s1,t ,length(s1)-length(s2) );
        
Edit1.Text  := s3 ;
end; 

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
 var
 
s1, s2, s3:string; i,j,  t:Integer;

begin        // <1>delphi44<4>
    
s1 := '<1>delphi44999o<4>'  ;
        
s2:= '';
for 
i := 1 to length(s1)  do
begin


             t  
:= Pos('<', s1[i])  ;
             if 
t >0   then

                 begin
                  j 
:= Pos('>', s1)  ;
                    if 
j >0   then
                   j 
:=  j + 1 ;
                   
t :=  i-j ;


                 
end;
             if (
j>1)and (t>j) then
              s2 
:= Copy(s1,j ,t);
end;
        
Edit1.Text  := s2 ;
end; 
PHP كود :
Edit2.Text :=Copy(Edit1.Text,pos('>',Edit1.Text)+1,Length(Edit1.Text)-6); 
شكرا لكم اخواني على محاولتكم
cargem أنا قلت بين <1> <4> وليس < >
النص فيه اكثر من كلمة
ارني النتيجة التي تريدها؟

اليست delphi44 !!
اكتب هذا النص
s1 := '<delphi44>Moves the cursor up one line and selects from the left of the starting cursor position.<xxcdelphi44>'

النتيجة
Moves the cursor up one line and selects from the left of the starting cursor position.
السلام عليكم ورحمة الله

تتعامل مع النص سطرا سطرا
تاخط سطر وتضعه في متغير نصي String نسميه s مثلا
لنسخ النص كا ذكرت يكفي كتابة شيئ مثل
كود :
copy(s,pos('<1>',s)+3,pos('<4>',s)-4);
مرفق مثالين بنفس الطريقة -وضعت النص في memo
السلام عليكم ورحمة الله وبركاته
شكرا اخواني
اعدروني لأني غبت ولم أرد على الموضوع
أنا تعاملت قبل مع pos , copy
لكن طرحت الاستفسار لأني واجهتني مشكلة في نسخ
لأن نص فيه أوسام متشابهة
<1><0>
<1><2>
<1><3>
وأحيانا يقع خطأ وينسخ أكثر من المحدد

فقلت سأكتب الموضوع اما يحل المشكل أو أرى طرق أخرى عسى تحل المشكل
الصفحات : 1 2