用get可以把从文件读出的一行数据直接赋值给一个用户类型,像这样
--定义
type UserType
     a as string * 2
     b as string * 3
end type
--读文件
Get FileNum, 1, UserType
如果文件第一行数据是"hello",这样系统会自动把UserType.a填充为"he",b为"llo",这样对处理数据非常方便,可是除了读文件如果是一个字符串变量却不能直接赋值给UserType,UserType="hello"(错)。请问如果我要把字符串直接赋值给用户类型,有什么办法解决么

解决方案 »

  1.   

    不能吧..只能用UserType.a="he"呀.这已经是自定的用类型,不能用直接的UserType了!(我觉得)
      

  2.   

    那么Get FileNum, 1, UserType是怎么做到这一点的呢?get也是读一个字符串出来呀,如果get语句可以,一定有其他的方法可以代替
      

  3.   

    像这样打开随机文件,然后用get读出一行
        Open App.Path & "\" & FileName For Random As #FileNum Len = 1026
      

  4.   

    使用copymemory进行复制, len为用户类型的长度
    CopyMemory Usertype, ByVal string, len
      

  5.   

    用上面大虾的方法,复制过去"hello",usertype.a显示乱码
      

  6.   

    Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
    Private Type UserType
         a As String * 2
         b As String * 3
    End Type
    Private Sub Form_Load()
    Dim AA As UserType
    Dim STR As String
    STR = "hello"CopyMemory AA, ByVal STR, Len(STR)MsgBox AA.a
    MsgBox AA.bEnd Sub
      

  7.   

    又出问题了啊。一两次copy还行,多两次就会内存出错