delphi4arab منتديات دلفي للعرب
تقسيم الحروف - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : تقسيم الحروف (/showthread.php?tid=474)



تقسيم الحروف - Goblin - 23-01-2009

[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]



تقسيم الحروف - محمد عبد العزيز - 23-01-2009


الكود يعمل دون اي خطا
فقط يجب ان يكون محتوى Edit1 طويل كفاية
اي طول الكلمة على الاقل 12 حرفا
والسلام عليكم



تقسيم الحروف - musvc - 23-01-2009

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

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


تقسيم الحروف - Goblin - 23-01-2009

DeltaAziz كتب :
يجب ان يكون محتوى Edit1 طويل كفاية
اي طول الكلمة على الاقل 12 حرفا
والسلام عليكم

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

سؤال اخر: ماذا اذا اردت مثلا ان اعكس او اغير ترتيب حروف كلمة و لا اعرف طولها ؟ لن تنفع الطريقة السابقة ![/COLOR]


تقسيم الحروف - محمد عبد العزيز - 23-01-2009

إقتباس :اليس كان من المفروض ان ينبهني ال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/showthread.php?tid=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; 

والسلام عليكم



تقسيم الحروف - Goblin - 23-01-2009

الطريقة اليدوية جميلة ! , جزاك الله خيرا اخي DeltaAziz.