在VB2005下如何将一个字符串转换成Byte()数组?
定义一个字节数组:Dimshuzu()asByte有一个字符串:DimstrasString=12345,需要将这个字符串str转换成{&H12,&H34,&H5}数组。...
定义一个字节数组:Dim shuzu() as Byte
有一个字符串:Dim str as String = 12345 ,需要将这个字符串str转换成{&H12,&H34,&H5}数组。
使得shuzu()={&H12,&H34,&H5}
怎么实现???
用代码怎么实现呢?注:字符串长度不一定是5,有可能是123,12345678这样的。是123时要转换成{&H12,&H3},是12345678时要转换成{&H12,&H34,&H56,&H78}。就这么个意思。 展开
有一个字符串:Dim str as String = 12345 ,需要将这个字符串str转换成{&H12,&H34,&H5}数组。
使得shuzu()={&H12,&H34,&H5}
怎么实现???
用代码怎么实现呢?注:字符串长度不一定是5,有可能是123,12345678这样的。是123时要转换成{&H12,&H3},是12345678时要转换成{&H12,&H34,&H56,&H78}。就这么个意思。 展开
5个回答
展开全部
用C#实现了你的目的,你自己转换成VB的吧:
string str = "12345";
int arrLen = (int)((str.Length+1) / 2);//数组的长度设置为字符串长度的一半,如长度为5时,数组长度为3
string[] arr = new string[arrLen];
byte[] arrB = new byte[arrLen];//用于储存转换好的字节数组
for (int i = 0; i < arr.Length; i++)
{
arr[i] = "0x";//在VB里是,在C#里是0x表示16进制;
if((i*2+2) >= str.Length)//防止单数时,取字符串长度越界
arr[i] += str.Substring(i * 2);
else
arr[i] += str.Substring(i * 2, 2);
arrB[i] = Convert.ToByte(arr[i],16);
}
string str = "12345";
int arrLen = (int)((str.Length+1) / 2);//数组的长度设置为字符串长度的一半,如长度为5时,数组长度为3
string[] arr = new string[arrLen];
byte[] arrB = new byte[arrLen];//用于储存转换好的字节数组
for (int i = 0; i < arr.Length; i++)
{
arr[i] = "0x";//在VB里是,在C#里是0x表示16进制;
if((i*2+2) >= str.Length)//防止单数时,取字符串长度越界
arr[i] += str.Substring(i * 2);
else
arr[i] += str.Substring(i * 2, 2);
arrB[i] = Convert.ToByte(arr[i],16);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Friend Class Program
' Methods
Private Shared Sub Main()
Dim p As Byte() = Program.String2ByteArray("123456789")
End Sub
Private Shared Function String2ByteArray(ByVal p As String) As Byte()
Dim len As Integer = IIf(((p.Length Mod 2) = 0), (p.Length / 2), ((p.Length / 2) + 1))
Dim x As Byte() = New Byte(len - 1) {}
Dim i As Integer
For i = 0 To x.Length - 1
x(i) = CByte(((p.Chars((i * 2)) * ChrW(16)) + p.Chars(((i * 2) + 1))))
Next i
Return x
End Function
End Class
' Methods
Private Shared Sub Main()
Dim p As Byte() = Program.String2ByteArray("123456789")
End Sub
Private Shared Function String2ByteArray(ByVal p As String) As Byte()
Dim len As Integer = IIf(((p.Length Mod 2) = 0), (p.Length / 2), ((p.Length / 2) + 1))
Dim x As Byte() = New Byte(len - 1) {}
Dim i As Integer
For i = 0 To x.Length - 1
x(i) = CByte(((p.Chars((i * 2)) * ChrW(16)) + p.Chars(((i * 2) + 1))))
Next i
Return x
End Function
End Class
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dim picture(1 to 10) as picture
set picture(1)=loadpicture("d:\213.jpg")
这样,数组picture(1)就等于那张图片了,像加载图片那样
set picture(1)=loadpicture("d:\213.jpg")
这样,数组picture(1)就等于那张图片了,像加载图片那样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个和定义没有关系吧@!截取字符串,然后赋值给数组就好了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符串应该有GetBytes之类的方法吧?
sorry没仔细看问题.
sorry没仔细看问题.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询