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

نسخة كاملة : كيف أنسخ آخر ثلاث أحرف من نص ما في edit
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم
كيف أستطيع أن أنسخ آخر ثلاث أحرف من نص ما في edit
هذه طريقة من الطرق .
حل على السريع Big Grin

PHP كود :
Function Ch3ar(S:String):String;
var
  
Le:Longword;
begin
  Le
:=Length(Trim(S));
  
Result:=Copy(Trim(S),Le-2,Le-(Le-3));
end; 

المخرجات

PHP كود :
Caption:=Ch3ar(edt1.Text); 
طريقة اخرى مختلفة .

PHP كود :
Function Ch3ar1(S:String):String;
var
 
Le,i:Longword;
begin
 Le
:=Length(Trim(S))+1;
 
S:=Trim(S);
  for 
i := 0 to 2 do
    
begin
     Result
:=Result+S[le-3];
     
Inc(le);
    
end;
end; 

PHP كود :
Caption:= Ch3ar1(edt1.Text); 
شكرا ً لكن هل توجد طريقة اخرى ولكن مختصرة كالتي يضعها الأخ DeltaAziz
إقتباس : هل توجد طريقة اخرى ولكن مختصرة .

لا اعتقد انه توجد طريقة اصغر من طريقة تستعمل Copy

اعتقد ان اخى عبدالله زعرور يريد استخراج امتداد ملف ما مصاره يكون فى Edit
هذه طريقة لذالك .

PHP كود :
Function Cha3r(S:PWideChar):TStringList;
 
begin
  Result
:= TStringList.Create;
     
ExtractStrings(['.'],
                    [
' '],
                    
S,
                    
Result);
  
Result.CommaText:=Trim(Result[Result.Count-1]);
 
end; 

PHP كود :
Caption := Cha3r(PWideChar(Edt1.Text)).Text;
            
Cha3r(PWideChar(Edt1.Text)).Free; 
Smile

استعمل copy نفس طريقة hanipino بالرد الاول حيث s هو النص
PHP كود :
Copy(S,Length(S)-2,3); 
لنسخ 3 اخر احرف من Edit1 الى Edit2 نكتب شيئ مثل
PHP كود :
var
S : string;
begin
S
:=Edit1.Text;
Edit2.Text := Copy(S,Length(S)-2,3);
end; 
او مباشرة دون استخدام متغير
PHP كود :
Edit2.Text := Copy(Edit1.Text,Length(Edit1.Text)-2,3); 

طريقة اخرى باستخدام الوحدة StrUtils
PHP كود :
ReverseString(Copy(ReverseString(S),1,3)); 

ان كان الهدف هو الحصول على لاحقة ملف فهناك دالة لذلك ExtractFileExt
PHP كود :
Edit2.Text := ExtractFileExt(Edit1.Text); 
والسلام عليكم
عجبتنى هذه الطريقة . Smile
إقتباس :
كود :
ReverseString(Copy(ReverseString(S),1,3));

1 : ----->
2 : <-----
3 : -----> Caption

دائما حاول التفكير بما عندك من دوال تجد طرق/حلول كثيرة
فقط انتبه ReverseString/StrUtils غير متوفرة في كل نسخ دلفي
مثلا انا استخدم دلفي 5 وهي غير موجودة
هذا الكود أفضل وأقل وهي موجودة على ما أعتقد في StrUtils

كود :
RightStr(Edit1.Text , 1, 3)
تعديل لتعمل مثل RightStr

PHP كود :
Function RightStr1(S:String;X,Y:LongWord):String;
var
  
Le:Longword;
begin
  S
:=Trim(S); Le:=Length(S);
  
Result:=Copy(S,Le-(Y-1),Le-(X-1));
end; 
الصفحات : 1 2