تقسيم الحروف
#1
[COLOR="RoyalBlue"]السلام عليكم و رحمة الله و بركاته

لدي سؤال عن تقسيم الاحرف, كيف عمل Split للحروف ؟

حاولت فى هذا الكود ولكن فيه خطأ, فهو ياتى بالحرف الخامس و العاشر فقط ![/COLOR]

كود :
[color=Navy][B]var[/B][/color] a,b,c,d,e : [color=Navy][B]string[/B][/color]; [color=Navy][B]begin[/B][/color] a := Edit1.Text; b := a[[color=Blue]5[/color]]+a[[color=Blue]10[/color]]; c := a[[color=Blue]12[/color]]+a[[color=Blue]1[/color]]; d := a[[color=Blue]2[/color]]+a[[color=Blue]9[/color]]; e := b + c + d; Edit2.Text := e; [color=Navy][B]end;[/B][/color]
الرد
#2

الكود يعمل دون اي خطا
فقط يجب ان يكون محتوى Edit1 طويل كفاية
اي طول الكلمة على الاقل 12 حرفا
والسلام عليكم
الرد
#3
Goblin كتب :حاولت فى هذا الكود ولكن فيه خطأ, فهو ياتى بالحرف الخامس و العاشر فقط !

لقد طرحت هذا السؤال في موقع العربي للهندسة العكسية و اجابوك بنفس جواب الأخ DeltaAziz فأن كان قصدك شيئ اخر وضح اكثر
الرد
#4
DeltaAziz كتب :
يجب ان يكون محتوى Edit1 طويل كفاية
اي طول الكلمة على الاقل 12 حرفا
والسلام عليكم

[COLOR="RoyalBlue"]نعم, لقد ادخلت 11 حرفا فقط, لذلك, توقفت العملية عن الحرف الخامس و العاشر ! اسف على تسرعي Sad
ملحوظة: اليس كان من المفروض ان ينبهني الCompiler !

سؤال اخر: ماذا اذا اردت مثلا ان اعكس او اغير ترتيب حروف كلمة و لا اعرف طولها ؟ لن تنفع الطريقة السابقة ![/COLOR]
الرد
#5
إقتباس :اليس كان من المفروض ان ينبهني الCompiler !
لا
الCompiler يتوقف عند اخطاء كتابة الاوامر Syntax ولا ينبهك عن الاخطاء المنطقية او اخطاءالتنفيذ Runtime Error فهذه من شأن المبرمج

يمكن معرفة طول String باستخدام Length
مثلا في مثالك السابق تتحقق من ان الطول اكير او يساوي 12 تكتب شيئ مثل
PHP كود :
a := Edit1.Text;
if 
length(a)<12 then begin
  showmessage
('الكلمة المدخلة قصيرة جدا');
  exit;
End; 

ان اردت قلب النص يمكن ان تستخدم ReverseString من الوحدة StrUtils
راجع http://www.delphi4arab.net/forum/showthr...606&page=2

او تقوم بذلك يدويا بكتابة شيئ مثلا
PHP كود :
var a,s:string;
    
i,len:integer;
begin
  a
:=Edit1.Text;
  
len := length(a);
  
s:='';
  for 
i:=0 to len-1 do
    
s:=s+a[len-i];

  
edit2.text := s;
end; 

والسلام عليكم
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • mohamed49
الرد
#6
الطريقة اليدوية جميلة ! , جزاك الله خيرا اخي DeltaAziz.
الرد


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


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