1.put #1,,&H11 
语句得到的是1100双字节值,为何不是11单字节值?如何写单字节数据?2.put #1,,&H11111111 
没有问题,但为何增加为&H11111111111111111111111111111111111111111111111111111111111111就不行了?原因是啥?3.某文件长度为1000个字节,需要删除其本身的第500字节位置以后的部分,不能删除新建,该如何实现?

解决方案 »

  1.   

    vb使用的是unicode码所以都是双字节的
    用这个函数转换成ascII嘛
    Function UniAsc(ByVal S As String)
    Dim StrA() As String
    S = Replace(S, "&# ", "")
    StrA = Split(S, ";")
    S = ""
    For i = 0 To UBound(StrA)
        If StrA(i) <> "" Then
            S = S & ChrW(Val(StrA(i)))
        End If
    Next
    UniAsc = S
    End Function 
      

  2.   

    1. vb总是优先把数值型值按照 integer 类型来编译, &h11 满足按两字节的 integer 类型条件, 所以写出去的就是 2 字节了, 你可以试试 &H11& 这样写, 就应该是 4 个字节了2.那么长 没有哪个数值型变量能放的下, 估计即便写入成功也是字符串类型
    如果写不成功 也可以用 cstr(&H11111111111...)  的方式写进去,不过是字符串的3。有个api   setendoffile
    hfile=createfile(xxxxx...)
    setfilepoint hfile, 0,500
    setendofpoint hfile
    closehandle hfile