Private Sub cmdsend_Click()
Dim byOut() As Byte
Dim Buf$, i%, j%, Buf1$
If a = 0 Then
Buf = Trim("90") & Chr(13) & Chr(10)
cmdsend.Caption = "结束"
a = 1
ElseIf a = 1 Then
Buf = Trim("165") & Chr(13) & Chr(10)
cmdsend.Caption = "开始"
a = 0
End If
j = 0
byOut = ""
Do
i = InStr(1, Buf, Chr(13) & Chr(10))
If i > 1 Then
ReDim Preserve byOut(0 To j) '
Buf1 = Left(Buf, i - 1)
If Val(Buf1) <> 0 Then
byOut(j) = Left(Buf, i - 1)
End If
j = j + 1
Else
Exit Do
End If
Buf = Right(Buf, Len(Buf) - (i + 1))
Loop
MSC1.Output = byOut
End Sub
Dim byOut() As Byte
Dim Buf$, i%, j%, Buf1$
If a = 0 Then
Buf = Trim("90") & Chr(13) & Chr(10)
cmdsend.Caption = "结束"
a = 1
ElseIf a = 1 Then
Buf = Trim("165") & Chr(13) & Chr(10)
cmdsend.Caption = "开始"
a = 0
End If
j = 0
byOut = ""
Do
i = InStr(1, Buf, Chr(13) & Chr(10))
If i > 1 Then
ReDim Preserve byOut(0 To j) '
Buf1 = Left(Buf, i - 1)
If Val(Buf1) <> 0 Then
byOut(j) = Left(Buf, i - 1)
End If
j = j + 1
Else
Exit Do
End If
Buf = Right(Buf, Len(Buf) - (i + 1))
Loop
MSC1.Output = byOut
End Sub
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。
设置 compare 参数设置为:常数 值 描述
vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。
返回值如果 InStr返回
string1 为零长度 0
string1 为 Null Null
string2 为零长度 Start
string2 为 Null Null
string2 找不到 0
在 string1 中找到string2 找到的位置
start > string2 0
说明InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。----------------------
Left 函数返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。语法Left(string, length)Left 函数的语法有下面的命名参数:部分 说明
string 必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返回 Null。
length 必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。
说明欲知 string 的字符数,使用 Len 函数。注意 LeftB 函数作用于包含在字符串中的字节数据。所以 length 指定的是字节数,而不是要返回的字符数。
--------------------------------------------------------------------------------
Right 函数返回 Variant (String),其中包含从字符串右边取出的指定数量的字符。语法Right(string, length)Right 函数的语法具有下面的命名参数:部分 说明
string 必要参数。字符串表达式,从中最右边的字符将被返回。如果 string 包含 Null,将返回 Null。
length 必要参数;为 Variant (Long)。为数值表达式,指出想返回多少字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。
说明欲知 string 的字符数,用 Len 函数。注意 RightB 函数作用于包含在字符串中的字节数据。所以 length 指定的是字节数,而不是指定返回的字符数。
right:返回 同上,包含的是字符串从右边算起指定数量的字符
Buf = Trim("90") & Chr(13) & Chr(10)
这一句吗?
Trim("90")=90Chr(13) & Chr(10) 表示回车换行
buf值最后就是
========================
"90
"
==========================
引号里面的东西
写成Buf = Trim"90"& Chr(13) & Chr(10) ?
请大家解释一下,应该不是程序员想卖弄自己吧?
写成Buf = "90"& Chr(13) & Chr(10) ?
请大家解释一下,应该不是程序员想卖弄自己吧?
Chr(10) 是换行符
一般换行时结合使用。
改来改去,弄成常量了,却没有删除多余的函数。这段代码写的并不好,啰嗦。改改:Private Sub cmdsend_Click()
Dim byOut(0) As BytebyOut(0) = IIf(a, 165, 90)
cmdsend.Caption = IIf(a,"开始","结束")
a = a xor 1MSC1.Output = byOut
End Sub