![]() |
|
[تمرين] استخراج حجم String بدون استعمال الدالة Length - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : تمارين دلفي وحلول (https://delphi4arab.net/forum/forumdisplay.php?fid=16) +--- الموضوع : [تمرين] استخراج حجم String بدون استعمال الدالة Length (/showthread.php?tid=3896) |
[تمرين] استخراج حجم String بدون استعمال الدالة Length - hanipino - 20-02-2012 [FONT="Arial Black"]الســــــــــلام عليكـــــــــم اكتب كود بالدالفى لاستراج حجم [FONT="Fixedsys"]String بدون الاستعانة بالدالة [FONT="Comic Sans MS"]Length بالتــــــــــــــــــــــــــوفيق . [تمرين] استخراج حجم String بدون استعمال الدالة Length - kachwahed - 20-02-2012 وعليكم السلام ورحمة الله وبركاته جرب بداية SizeOf مع توجيه IFDEF UNICODE يقسم الناتج على اثنين، فأعطتني حجم المؤشر 4 byteهذه باستخدام VCL وأحداث ويندوز WM_GETTEXTLENGTH... PHP كود : function GetStrLength(S: string): Integer;شكرا على التمرين
[تمرين] استخراج حجم String بدون استعمال الدالة Length - hanipino - 20-02-2012 نعم SizeOf تعطى حجم المتغير و ليس حجم القيمة التى يحتويها المتغير . كود : لكن لم أجربها على iOS فما تتوقع؟- بالنسبة لطريقتك : تعطى نتيجة صحيحة لاكنها كبيرة جدا سواء بالدالفى او بالاسمبلى (Disassembly) يوجد ما احسن منها مثلا لا يتعدى كودها نصف سطر بالدالفى و حوالى 4 اوامر بالاسمبلى . ![]() شكرا لك اخى kachwahed . ------------------------------ التمرين مفتوح لمحاولات اخرى . [تمرين] استخراج حجم String بدون استعمال الدالة Length - TF6M - 20-02-2012 السلام عليكم ![]() PHP كود : Function GetStringLength (TrgStr: String): Byte;بالتوفيق,, [تمرين] استخراج حجم String بدون استعمال الدالة Length - hanipino - 20-02-2012 وعليكم السلام اخى TF6M محاولة جيدة لكنها ناقصة ... لماذا ? ماذا لو كان حجم String اكبر من ان يخزن فى 1 بايت فقط (اى حجمه اكبر من ان يخزن فى بايت فقط) الدالة تقراء بايت واحد فقط من المكان الصحيح بالرغم من انك ذهبت للمكان الصحيح عن طريق طرح 4 بايت الا انك قراءت 1 فقط .
[تمرين] استخراج حجم String بدون استعمال الدالة Length - TF6M - 20-02-2012 hanipino كتب :وعليكم السلام1- أولا طول القيمة النصية و ليس حجم لأن هناك فرق . 2- الطول المدروس بين 256 محرف و 65535 لاحظ التويجه IFDEF UNICODE 3-" بالرغم من انك ذهبت للمكان الصحيح " هنا4- "الا انك قراءت 1 فقط" حسب الحاجة byte / word .... فقط للتقليل من حجم الداكرة المخصص بارك الله فيك + في إنتطار البقية بالتوفيق,, [تمرين] استخراج حجم String بدون استعمال الدالة Length - hanipino - 20-02-2012 كود : 2- الطول المدروس بين 256 محرف و 65535 لاحظ التويجه IFDEF UNICODEلم افهمك انا استعمل دالفى 2007 دائما شرط UNICODE غير محقق و حتى ان تحقق فان المتغير PL سياخد عنوان قبل السلسلة النصية ب 2 بايت و ان لم يتحقق سياخد عنوان قبل السلسلة النصية ب 4 بايت والنتيجة دائما قرائة 1 بايت من عنوان المتغير PL ... ??? كود : حسب الحاجة byte / word .... فقط للتقليل من حجم الداكرة المخصصكيف ذالك حسب الحاجة الدالة مخصصة للاتيان ب طول السلسة النصية و قيمة هذه الاخيرة يخزن فى 4 بايت ... كيف تقراء حسب الحاجة byte / word ... (لا بل DWORD او INTEGER ... ) مثلا طول سلسلة نصية 130000 محرف هل الدالة تعيد النتيجة صحيحة . [تمرين] استخراج حجم String بدون استعمال الدالة Length - kachwahed - 20-02-2012 أثناء أحد المحاولات الفاشلة حصلت على هذه ![]() ثم تمكنت منها في سطرين... بالغش
[تمرين] استخراج حجم String بدون استعمال الدالة Length - virtual - 21-02-2012 لماذا طرحت 2 من المؤشر pl هل في هذا العنوان يخزن طول السلسلة ؟ [تمرين] استخراج حجم String بدون استعمال الدالة Length - لؤي - 21-02-2012 السلام عليكم تفضل محاولتي: كود : procedure TForm1.Button1Click(Sender: TObject);
var L: ShortString;
begin
L := 'delphi4arab delphi4arab delphi4arab delphi4arab';
ShowMessage(IntToStr([color=Red]Ord(L[0][/color])));
end; |