![]() |
|
أسرع طريقة للحصول على طول سلسلة نصية FastStrLen - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13) +--- الموضوع : أسرع طريقة للحصول على طول سلسلة نصية FastStrLen (/showthread.php?tid=5054) |
أسرع طريقة للحصول على طول سلسلة نصية FastStrLen - SMP3 - 24-03-2013 السلام عليكم و رحمة الله وبركاته
كنت قد كتبت قبل أيام دالة تقوم بجلب طول سلسلة نصية FastStrLen PHP كود : function FastStrLen(const _Str:String):Integer;assembler;
lengthasm.jpg (الحجم : 28.22 ك ب / التحميلات : 43)
لو رجعنا للوراء ب 4 بايت من موقع السلسلة سنشاهد طول السلسلة النصية بالهكس . في هذا المثال : Length('Sample Text')= $B = 11 الدالة تصبح بالشكل التالي : PHP كود : function FastStrLen (s:string):integer;assembler;أسرع طريقة للحصول على طول سلسلة نصية FastStrLen - DeadC0der - 24-03-2013 أكيد ستكون باأسمبلي أسرع لأن الدوال الاخرى تفوم بمجموعة نت التحققات و المقارنات و لكن يمكن القول ان درجة السرعة طفيفة أما عن الطريقة الثانية فهذه تعمل فقط مع النوع String لأن هذا النوع مختلف عن Pchar حيث يتم تخزين الطول في [Address -4[ و الدلفي في حد ذاته يستعمل هذه الطريقة لجلب طول اي نص :p أسرع طريقة للحصول على طول سلسلة نصية FastStrLen - SMP3 - 24-03-2013 DeadC0der كتب :مختلف عن Pchar حيث يتم تخزين الطول في [Address -4[ و الدلفي ... نعم .. هذا صحيح @+ أحب أن أضيف أن هذه الطريقة تصلح مع دلفي فقط !! بالنسبة للأنواع الأخرى مثل PChar فيمكن استعمال الدالة الأولى
|