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

كود :
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;
الرد
#3
شكرا أخي على المحاولة
القيمة delphi44
ليست ثابته أود نسخ مابين الوسمين <1> <4>
الرد
#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; 
الرد
#5
PHP كود :
Edit2.Text :=Copy(Edit1.Text,pos('>',Edit1.Text)+1,Length(Edit1.Text)-6); 
الرد
#6
شكرا لكم اخواني على محاولتكم
cargem أنا قلت بين <1> <4> وليس < >
النص فيه اكثر من كلمة
الرد
#7
ارني النتيجة التي تريدها؟

اليست delphi44 !!
الرد
#8
اكتب هذا النص
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.
الرد
#9
السلام عليكم ورحمة الله

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


الملفات المرفقة
.rar   example1.rar (الحجم : 906 بايت / التحميلات : 11)
.rar   example2.rar (الحجم : 886 بايت / التحميلات : 9)
الرد
#10
السلام عليكم ورحمة الله وبركاته
شكرا اخواني
اعدروني لأني غبت ولم أرد على الموضوع
أنا تعاملت قبل مع pos , copy
لكن طرحت الاستفسار لأني واجهتني مشكلة في نسخ
لأن نص فيه أوسام متشابهة
<1><0>
<1><2>
<1><3>
وأحيانا يقع خطأ وينسخ أكثر من المحدد

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


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


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