السلام عليكم ورحمة الله وبركاته ،،،
مثال : VBHelper.zip
فى كثير من الأحيان نحتاج إلى تحويل نوع (Type) الى مصفوفة من البيايت (BYTES) لتسهيل التعامل معها أو تداول بيناتها بأى شكل.
فمثلا قد تحتاج الى نقل Type عبر WinSock أو ... الخ
أولاً قم بتعريف الـ Type أو احياناً يطلق عليه Struct (فى لغة C) وهى أختصال إلى Structure أى بناء بينات منتظم، ولنفترض الـ type هو myType كالتالى
Public Type myType ID As Long Username(81) As Byte Password(81) As Byte End Type
ولتحويله إى مصفوفة بايت اتبع التالى:
1) تعريف المتغير
Dim Auth As myType Dim Buff() As Byte Dim BuffLen As Long
حيث Auth هو النوع المراد تحويله الى مصفوفة فى Buff بالطول BuffLen
2) الحصول على الحجم
BuffLen = Len(Auth)
3) حجز حجم للمصفوفة بطول الـ Auth
ReDim Buff(BuffLen)
4) ملئ المصفوفة ببيانات الـ Type
helper.ConvertToByteArray VarPtr(Auth), BuffLen, Buff(0)
حيث تستخدم الدالة ConvertToByteArray لملئ مصفوفة من نوع ما (Type)
اما الدالة ConvertFromByteArray فتستخدم للعكس، أى ملئ Type من مصفوفة
مرفق مثال (تحديث للمثال الموجود فى الموضوع: خطأ في كود إرسال البيانات, في أداة الوينسوك) لتوضيح الاستخدام ، ولإرسال واستقبال Types عبر WinSock
وبلبد قبل بد الإستخدام من تسجيل الأداة المرفقة VBHelper.dll كالتالى
شكراً