[FONT="Arial Black"]الســــــــــلام عليكـــــــــم
اكتب كود بالدالفى لاستراج حجم [FONT="Fixedsys"]String بدون الاستعانة بالدالة [FONT="Comic Sans MS"]Length
بالتــــــــــــــــــــــــــوفيق .
نعم SizeOf تعطى حجم المتغير و ليس حجم القيمة التى يحتويها المتغير .
كود :
لكن لم أجربها على iOS فما تتوقع؟
مثلك اخى kachwahed لم اجربها .
- بالنسبة لطريقتك :
تعطى نتيجة صحيحة لاكنها كبيرة جدا سواء بالدالفى او بالاسمبلى (Disassembly)
يوجد ما احسن منها مثلا لا يتعدى كودها نصف سطر بالدالفى و حوالى 4 اوامر بالاسمبلى .
شكرا لك اخى kachwahed .
------------------------------
التمرين مفتوح لمحاولات اخرى .
وعليكم السلام
اخى TF6M محاولة جيدة لكنها ناقصة ... لماذا ?
ماذا لو كان حجم String اكبر من ان يخزن فى 1 بايت فقط (اى حجمه اكبر من ان يخزن فى بايت فقط)
الدالة تقراء بايت واحد فقط من المكان الصحيح بالرغم من انك ذهبت للمكان الصحيح عن طريق طرح
4 بايت الا انك قراءت
1 فقط

.
hanipino كتب :وعليكم السلام
ماذا لو كان حجم String اكبر من ان يخزن فى 1 بايت فقط (اى حجمه اكبر من ان يخزن فى بايت فقط)
1- أولا طول القيمة النصية و ليس حجم لأن هناك
فرق .
2- الطول المدروس بين 256 محرف و 65535 لاحظ التويجه
IFDEF UNICODE
3-" بالرغم من انك ذهبت للمكان الصحيح

"
هنا
4- "الا انك قراءت
1 فقط" حسب الحاجة byte / word .... فقط للتقليل من حجم الداكرة المخصص
بارك الله فيك + في إنتطار البقية بالتوفيق,,
كود :
2- الطول المدروس بين 256 محرف و 65535 لاحظ التويجه IFDEF UNICODE
لم افهمك انا استعمل دالفى 2007 دائما شرط UNICODE غير محقق و حتى ان تحقق فان المتغير PL سياخد عنوان قبل السلسلة النصية ب 2 بايت و ان لم يتحقق سياخد عنوان قبل السلسلة النصية ب 4 بايت
والنتيجة دائما قرائة 1 بايت من عنوان المتغير PL ... ???
كود :
حسب الحاجة byte / word .... فقط للتقليل من حجم الداكرة المخصص
كيف ذالك حسب الحاجة الدالة مخصصة للاتيان ب طول السلسة النصية و قيمة هذه الاخيرة يخزن فى 4 بايت ... كيف تقراء حسب الحاجة byte / word ... (لا بل DWORD او INTEGER ... )
مثلا طول سلسلة نصية 130000 محرف هل الدالة تعيد النتيجة صحيحة .
لماذا طرحت 2 من المؤشر pl
هل في هذا العنوان يخزن طول السلسلة ؟