爱的旅程全文在线阅读:下面是2段VB代码,帮忙解释下,小弟看不懂

来源:百度文库 编辑:高考问答 时间:2024/05/06 02:44:16
这是第一段
Private Function LenStr(Source As String) As String
Dim SLength, i, J As Integer
Dim GG As Boolean
GG = False
J = 0
SLength = Len(Source)
For i = 1 To SLength
If Asc(Right(Left(Source, i), 1)) > 255 Or Asc(Right(Left(Source, i), 1)) < 0 Then LenStr = Left(Source, J): GG = True: Exit For
J = J + 1
Next i
If GG = False Then LenStr = Source
End Function

这是第二段
Private Function TranStr(SourceStr As String, Lengths As Integer) As String
Dim Slength, i, J, K As Integer
Dim GG, ff As Boolean
J = 0
Slength = Len(SourceStr)
For i = 1 To Slength
If Asc(Right(Left(SourceStr, i), 1)) > 255 Or Asc(Right(Left(SourceStr, i), 1)) < 0 Then J = J + 1
K = K + 1
If K + J = Lengths Then GG = True: Exit For
If K + J > Lengths Then ff = True: Exit For
Next i
If GG = True Then
TranStr = Left(SourceStr, K)
Else
If ff = True Then
SourceStr = Left(SourceStr, K - 1)
TranStr = TranStr(SourceStr, Lengths)
Else
Slength = Slength + J
If Slength <= Lengths Then TranStr = SourceStr & String(Lengths - Slength, " ")
End If
End If
End Function

Private Function LenStr(Source As String) As String
Dim SLength, i, J As Integer
Dim GG As Boolean
GG = False
J = 0
SLength = Len(Source) '取得source的长度
For i = 1 To SLength '遍历Source
If Asc(Right(Left(Source, i), 1)) > 255 Or Asc(Right(Left(Source, i), 1)) < 0 Then LenStr = Left(Source, J): GG = True: Exit For
'Right(Left(Source, i), 1)取得source中左边n个字符中最右边的字符,其实可以用mid(Source, i, 1)代替
'判断取得字符的ascII码值,如果在0~255之外将source的前J个字符取得
'将GG设为TRUE,跳出FOR循环
'":"的作用是在同一行连续执行语句
J = J + 1
Next i
If GG = False Then LenStr = Source
End Function

Private Function TranStr(SourceStr As String, Lengths As Integer) As String
Dim Slength, i, J, K As Integer
Dim GG, ff As Boolean
J = 0
Slength = Len(SourceStr)
For i = 1 To Slength
If Asc(Right(Left(SourceStr, i), 1)) > 255 Or Asc(Right(Left(SourceStr, i), 1)) < 0 Then J = J + 1
'当SourceStr的第i个字符的ascII码值在0~255之外,J自增1
K = K + 1 'K自增1
If K + J = Lengths Then GG = True: Exit For
If K + J > Lengths Then ff = True: Exit For
Next i
If GG = True Then
TranStr = Left(SourceStr, K) '如果GG为真,递归调用函数自身
Else
If ff = True Then '如果FF为真
SourceStr = Left(SourceStr, K - 1) '取得SourceStr左边K-1个字符
TranStr = TranStr(SourceStr, Lengths) '递归调用函数自身
Else
Slength = Slength + J
If Slength <= Lengths Then TranStr = SourceStr & String(Lengths - Slength, " ") '当Slength <= Lengths为真,设置返回值为SourceStr的内容并加上(Lengths - Slength)个空格
End If
End If
End Function