vb String函数怎么才能分配出和文件大小相等的空间
我用vb 模拟了一次 post 上传 图片或者文件到服务器 这个是获取文件或者是图片的信息方法
Visual Basic code?Function getArchivoComoString(strFileName As String) As String Dim strFile As String Dim nFile As Variant Dim size As Long nFile = FreeFile ' 返回一个Integer,代表下一个可供OPEN语句使用的文件号 size = FileLen(strFileName) ' 本地文件的大小 Open strFileName For Binary As #nFile ' 假如 size = 100 经过 string 大小就会变成 200 ' String(size \ 2, " ") 要是这样 他的大小就会变成 90 比原来小了 ' 怎么才能让分配的空间大小和文件的大小相等 strFile = String(size, " ") ' 赋值 文件字节大小的 " " 空间给 strFile 变量 Get #nFile, , strFile ' 把打开的文件的 信息放在 strFile 中 Close #nFile getArchivoComoString = strFile End Function
如果用的是 strFile = String(size, " ")
上传的 图片 大小就会比原来大很多 打开图片显示 无法预览
上传的 文件 能打开 就是 会多出一些小方块
如果用 strFile = String(size \ 2, " ")
上传的 图片 大小就会比原来小很多 打开图片显示 无法预览
上传的 文件 能打开 就是内容少了 一部分
在用这句话 strFile = String(size, " ") 中的 string 分配空间的时候怎么 才能 分配出和文件大小相等的 空间
Function getArchivoComoString(strFileName As String) As String
改为
Function getArchivoComoString(strFileName As String) As Byte()
Dim strFile As String 改为 Dim strFile() As Byte
...
strFile = String(size, " ") 改为 Redim strFile(size)
有个 API 对于操作字节数组比较方便,是 CopyMemory,如果你想在字节数组与字符串间转换,可以使用 StrConv 函数,如:
字节数组 = StrConv(文本, vbFromUnicode)
文本 = StrConv(字节数组, vbUnicode)