标签:长度 function 指定位置 sep 一个 AC 注意 instr 字符串长度
Public Function StrExtract(ByRef sStr As String, ByRef iCol As Short, ByRef sSeparater As String) As String
--sStr = 1,2,3,4,5
-- iCol = 4
-- sSeparate = ","
Dim i As Short
Dim j As Short
Dim k As Short
Try
j = 0
k = 1
Do
//从j + 1的位置开始检索,取得sSeparater符号,在字符串sStr中的索引位置,InStr方法索引从1开始
i = InStr(j + 1, sStr, sSeparater)
//从指定位置开始检索,但是找不到sSeparater符号时
If i = 0 Then
//找不到符号,如以上字符串5所在的情况,j是上一个逗号所在的位置
If (k = iCol) And (j < Len(sStr)) Then
//从上一个逗号 + 1 的位置,开始截取 总长度 - j(因为索引是从1开始)
// * 注意 lsLine.IndexOf("=") 方法索引又是从0开始。 "Dte"="2017/01/01" 5
// * InStr(1, "123456789", "8") 方法索引又是从1开始。 8
StrExtract = Mid(sStr, j + 1, Len(sStr) - j)
Exit Function
Else
StrExtract = ""
Exit Function
End If
Else
//参数iCol = 4,取第4个逗号前面的值
If k = iCol Then
//截取了两个逗号之间的字符串
// j 上一个逗号的索引位置 + 1,的位置开始截取字符串
// 截取字符串长度(Length)为i当前逗号所在的索引位置 - 上一个逗号所在的索引位置 - 1(自身逗号占用长度)
StrExtract = Mid(sStr, j + 1, i - j - 1)
Exit Function
Else
// j 是检索的起始位置,i 是逗号所在的索引位置,目的是从寻找下一个逗号
j = i
k = k + 1
End If
End If
Loop
Exit Function
Catch ex As Exception
StrExtract = ""
LogProcNam("StrExtract")
End Try
End Function
从用符号、Tab等等方式正在划分的文字块中,取出指定了位置的文字块
标签:长度 function 指定位置 sep 一个 AC 注意 instr 字符串长度
原文地址:https://www.cnblogs.com/gongjin/p/9122630.html