首页上一页 1 下一页尾页 1 条记录 1/1页
关于string转BYTE()的问题---- to VBsoldier
发表在VB答疑区
2009-10-13
是否精华
是
否
版块置顶:
是
否
老大啊,你没有理解我问的问题,可能是我没有说清楚,现再详述一下。
文件发送端的关键相关程序如下:
Private Sub sckServer_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim BytDate() As Byte
Dim FileName As String
Dim lngFile As Long
Dim j As Long
Dim monthnumber As Integer
FileName = "D:\电渣数据表\10月.xls " '取得文件名及路径
lngFile = FileLen(FileName) \ 1024 '取得文件长度
For j = 0 To lngFile
ReDim myFile(1023) As Byte '初始化数组
Open FileName For Binary As #1 '打开文件
Get #1, j * 1024 + 1, myFile '将文件写入数组
Close #1 '关闭文件
sckServer(index).SendData myFile '发送
DoEvents
Next j
End Sub
接收端的关键程序如下:
Private Sub sckClient_DataArrival(ByVal bytesTotal As Long)
Dim myFile() As Byte
Dim myLong As Double
Dim myPath As String
Dim s As String’由于接收其它大量信息时需要用字符串的格式,所以S没有预设为BYTE()数组,而采用接 收EXCEL文件时将string转换为BYTE()数组的方式
sckClient.GetData s
Kill "D:\Program Files\电渣数据采集系统客户端\电渣数据表\10月.xls"’先删除原先存在的老文件
myPath = "D:\Program Files\电渣数据采集系统客户端\电渣数据表\10月.xls"
myFile = strbyt(s)’此处的字符串转换为BYTE数组函数在下实在是不知该如何下手,我曾经尝试用StrConv(s, vbFromUnicode) ,但接收到的文件不对,请师兄给个示例代码,谢谢!
Open myPath For Binary As #1 '新建文件
myLong = FileLen(myPath)
Put #1, myLong + 1, myFile '将收到的数据写入新文件中
Close #1 '关闭
End sud
现在的问题是:发送端发出的数据是把EXCEL文件分成1024字节为一个数组,并发送若干次,而接收端接收时是用语句sckClient.GetData s,来接收,由于我程序中还有其它的字符串要传送,因此把s定义为string,这样其它字符串就无需转换了,但接收EXCEL文件时必须把接收到的s中的数据转换为byte()数组,再写到接收端的EXCEL文件中去,我现在就是卡在转换这里了。如何转换?老大说的《VB项目开发全程实录》我暂时还没有购买,因此拜托您ctrl+c然后ctrl+v一下,我整个程序基本都调通了,就差这个问题了。拜托了!!!
文件发送端的关键相关程序如下:
Private Sub sckServer_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim BytDate() As Byte
Dim FileName As String
Dim lngFile As Long
Dim j As Long
Dim monthnumber As Integer
FileName = "D:\电渣数据表\10月.xls " '取得文件名及路径
lngFile = FileLen(FileName) \ 1024 '取得文件长度
For j = 0 To lngFile
ReDim myFile(1023) As Byte '初始化数组
Open FileName For Binary As #1 '打开文件
Get #1, j * 1024 + 1, myFile '将文件写入数组
Close #1 '关闭文件
sckServer(index).SendData myFile '发送
DoEvents
Next j
End Sub
接收端的关键程序如下:
Private Sub sckClient_DataArrival(ByVal bytesTotal As Long)
Dim myFile() As Byte
Dim myLong As Double
Dim myPath As String
Dim s As String’由于接收其它大量信息时需要用字符串的格式,所以S没有预设为BYTE()数组,而采用接 收EXCEL文件时将string转换为BYTE()数组的方式
sckClient.GetData s
Kill "D:\Program Files\电渣数据采集系统客户端\电渣数据表\10月.xls"’先删除原先存在的老文件
myPath = "D:\Program Files\电渣数据采集系统客户端\电渣数据表\10月.xls"
myFile = strbyt(s)’此处的字符串转换为BYTE数组函数在下实在是不知该如何下手,我曾经尝试用StrConv(s, vbFromUnicode) ,但接收到的文件不对,请师兄给个示例代码,谢谢!
Open myPath For Binary As #1 '新建文件
myLong = FileLen(myPath)
Put #1, myLong + 1, myFile '将收到的数据写入新文件中
Close #1 '关闭
End sud
现在的问题是:发送端发出的数据是把EXCEL文件分成1024字节为一个数组,并发送若干次,而接收端接收时是用语句sckClient.GetData s,来接收,由于我程序中还有其它的字符串要传送,因此把s定义为string,这样其它字符串就无需转换了,但接收EXCEL文件时必须把接收到的s中的数据转换为byte()数组,再写到接收端的EXCEL文件中去,我现在就是卡在转换这里了。如何转换?老大说的《VB项目开发全程实录》我暂时还没有购买,因此拜托您ctrl+c然后ctrl+v一下,我整个程序基本都调通了,就差这个问题了。拜托了!!!