在VB中有两种读取文本的方法,如下所示。
1. 用VB中的ReadDeviceStr读取文本
在这种情况下,需要指定(固定)保存已读文本位置的大小。
Public Sub Sample1()
Dim strData As String * 10 '指定读取大小的正确指定方法
'Dim strData As String 不指定文本大小的错误指定方法
Dim IErr As Long
IErr = ReadDeviceStr("ReadDeviceStrD", "ReadDeviceVariantD", strData, 10)
If IErr <> 0 Then
MsgBox "Read Error = " & IErr
Else
MsgBox "Read String = " & strData
End If
End Sub
2. 用VB中的ReadDeviceVariant读取文本
如果不指定保存已读文本的位置大小,应使用Variant类型。
Public Sub Sample2()
Dim IErr As Long
Dim vrData As Variant '对于保存读取数据的位置,指定Variant类型
IErr = ReadDeviceVariant("GP1", "LS100", vrData, 10, EASY_AppKind_Str)
If IErr <> 0 Then
MsgBox "Read Error = " & IErr
Else
MsgBox "Read String = " & vrData
End If
End Sub
应该注意的是,WinGP SDK在文本结尾处使用NULL。因此,采用上述方法获取的文本在结尾处有NULL字符,需将其删除。
下面显示将文本缩短(去掉NULL)的示例函数。
Public Function TrimNull(strData As String) As String
Dim i As Integer
i = InStr(1, strData, Chr$(0), vbBinaryCompare)
If 0 < i Then
TrimNull = Left(strData, i - 1)
Else
TrimNull = strData
End If
End Function