38.9.5.7 读取VB中的文本

在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