PDA

View Full Version : تبدیل رشته به آرایه ای از بایت



hossein-khoshseyar
دوشنبه 17 آبان 1389, 20:35 عصر
سلام
دوستان می خواستم بدونم چطور می تونم یه رشته رو به یک آرایه از بایت تبدیل کنم


Dim str As String = "salam"
Dim s As Char() = str_string.ToCharArray
Dim str_byte(str.Length) As Byte
For n As Integer = 0 To str.Length
str_byte(n) = Asc(str(n))
Next

این راه رو خودم بلدم
اما دنبال یه چیز بهینه تر می گردم
شاید تابعی یا روش ساده تری خود دات نت داشته باشه
اگه کسی می دونه ممنون میشم که جواب ما رو بده
ممنون

ali_najari
دوشنبه 17 آبان 1389, 21:02 عصر
سلام
دوستان می خواستم بدونم چطور می تونم یه رشته رو به یک آرایه از بایت تبدیل کنم


Dim str As String = "salam"
Dim s As Char() = str_string.ToCharArray
Dim str_byte(str.Length) As Byte
For n As Integer = 0 To str.Length
str_byte(n) = Asc(str(n))
Next

این راه رو خودم بلدم
اما دنبال یه چیز بهینه تر می گردم
شاید تابعی یا روش ساده تری خود دات نت داشته باشه
اگه کسی می دونه ممنون میشم که جواب ما رو بده
ممنون

دوست عزیز به اینطریق میتونید تبدیل کنید



Dim TextToByte As Byte() = System.Text.Encoding.Unicode.GetBytes(TextBox1.Tex t)

hossein-khoshseyar
دوشنبه 17 آبان 1389, 21:18 عصر
دوست عزیز به اینطریق میتونید تبدیل کنید



Dim TextToByte As Byte() = System.Text.Encoding.Unicode.GetBytes(TextBox1.Tex t)


دوست عزیز کد شما یه مشکل داره
اونم این هست که به ازای یک رشته 6 کاراکتری 12 بایت خروجی میده و یکی در میون صفر اضافه میزاره

هرچند من خیلی از یونیکد چیز نمی دونم
اما لازم هست که بگم که این رشته ای که گفتم که قرار هست به بایت تبدیل بشه لزوما رشته حرفی نیست و مثلا ممکن هست توش کاراکتر 200 هم موجود باشه. یا بهتره بگم توش هر کاراکتری بین 0 تا 255 وجود داره

hossein-khoshseyar
دوشنبه 17 آبان 1389, 21:22 عصر
یه سئوال جنبی که ربطی هم به این تاپیک نداره

دوستان من مدتی هست که توی کدهام یه مشکلی از ویژوال استودیو می بینم
فرض کنید توی یک تابعی یک حلقه فور داشته باشیم که به یک متغیر آرایه ای مقدار دهی می کنه



فرض کنید متغیر آرایه ای 10 تا عضو داشته باشه و من حلقه فور رو برای 15 تا نوشته باشم

اون وقت کامپایلر موقع اجرا موقعی که به دهمی رسید به من خطا نمی ده بلکه اتوماتیک از فور میپره بیرون و بقیه اون تابع رو هم اجرا نمی کنه!!!!!!
مطمئنم که قبلا این مشکل رو نداشتم



dim x(5) as int16
for n as int16 =0 to 10
x(n)=n
next
.
.
.
.
.

b.mahsa
دوشنبه 17 آبان 1389, 22:20 عصر
Dim dBytes As Byte()
Dim str As String = "salam"
Dim enc As New System.Text.UTF8Encoding
dBytes = enc.GetBytes(str)