دوستان عزیز به سئوال من جواب ندادند به همین خاطر مجددا آن را مطرح می کنم
با توجه به کد برنامه زیر:
dim bytestosend( o to 1) as byte
dim buffer as variant
butestosend(0)=&h4a
bytestosend(1)=&h23
buffer=bytestosend() w
mscomm1.output=buffer
1- چگونه می توانم بفهمم که محتویات متغیر buffer به صورت باینری چی هست؟ به عبارت دیگر محتویات این متغیر را چگونه می توان به صورت باینری نشان داد؟
البته این روشی که من استفاده می کردم جواب نمی ده : text1.text=buffer ( فقط کاراکتر ؟ نشون می ده )
2- اگر بخواهیم یک عدد باینری را به یک متغیر مانند number نسبت بدیم چگونه می بایست به vb اعلام کنیم؟
سلام
خوب هستيد
ببنيد شما ميايد يك متغير واريانت تعريف ميكنيد يعني ديتا بعلاوه متا ديتا كه وي بي بر اساس اون مياد و ميفهمه كه اين متغيير چه چيزي رو در خودش نگه ميداره و بعد دو تا متغير بايت را توش قرار ميديد يعني متغير شما ميشه توي هگزه h00004a23 بعلاوه متا ديتا يعني به اين صورت
خوب وقتي اون را توي يك تكس باكس قرار ميدهيد وي بي مياد و با استفاده از توابع داخلي اون را تبديل ميكنه به استرينگ يعني در اين حالت استرينگ شما ميشه
کد:
metadata who convert to string + &h00+&h00+&h4a+&h23
منظورم از + يعني نحوه قرار گيري اطلاعات
خوب حالا چه اتفاقي مي افته ؟
قسمت متا ديتا يك كد كه به احتمال زياد كد اسكي اون خارج از محدوده مجازه كه توي تكس باكس ميشن ؟
اما وقتي به كد 00 ميرسيم وي بي خيال ميكنه انتهاي استرينگه و نمايش رو قطع ميكنه ( نال استرينگ كد)
پس شما ؟ ميبنيد به همين راحتي
فكر كنم شما اگر buffer رو بصورت زير تعريف كنيد مشكل نداشته باشيد ( وي بي دم دست نيست تا تست كنم )
اما در مورد سئوال 2
فكر كنم درست متوجه سئوالتون نشدم يعني يك متغير يا ارايه از بايت ها را توي متغير از نوع مثلا double قرار دهيم
؟
اگر اين طور است:
1- يك بايت
کد:
dim i as integer
dim b as byte
b=&h24
i=b
2- اگر ارايه است
کد:
dim i as integer
dim b() as byte
redim b(0 to 1) as byte
b(0)=&h23
b(1)= &h20
i=b(0)
for j=1 to ubound(b)
i=i*256+b(j)
next
ممكنه روش ديگري هم داشته باشه اما من بلد نيستم
اميدوارم كمك كنه