财务凭证中有一个文本,它的内容如下:“携程机票住宿费用2月等,GZ250250250”,我想把“GZ250250250”取出来,代码如下:
s = value[1]
s_JZZF = KEY_JZZF(s)
s = value[1]
s_BX = KEY_BX(s)
s = value[1]
s_ZD = KEY_ZD(s)
s = value[1]
s_CL = KEY_CL(s)
s = value[1]
s_GZ = KEY_GZ(s)
s = value[1]
s_JK = KEY_JK(s)
s = value[1]
s_ZJHB = KEY_ZJHB(s)
// --------刘欣用关键字识别----
If s_JZZF <> 0
MKcode = s_JZZF
Else
If s_BX <> 0
MKcode = s_BX
Else
If s_ZD <> 0
MKcode = s_ZD
Else
If s_CL <> 0
MKcode = s_CL
Else
If s_GZ <> 0
MKcode = s_GZ
Else
If s_JK <> 0
MKcode = s_JK
Else
If s_ZJHB <> 0
MKcode = s_ZJHB
Else
End If
End If
End If
End If
End If
End If
End If
// 把每克单号的 - 后面去掉
iRet = InStr(MKcode,"-",1,False)
If iRet <> 0 // 如果有,才去保留左边
MKcode = Left(MKcode,InStr(MKcode,"-",1,False) - 1)
End If
//-------------------刘欣
Function KEY_ZJHB(s)
ZJHB_iRet = InStr(s,"ZJHB",1,False) //查找字符串,返回位置
ZJHB_sRet = StrGetAt(s,ZJHB_iRet + 4 ) //去关键字后的一个字符
ZJHB_isOK = IsSpecificStr(ZJHB_sRet,"number") // 测试这个字符是不是数字
ZJHB_endRet = right(s, (Len(s) - ZJHB_iRet + 1) ) //总长度减去左边的,剩下右边的字符
If ZJHB_isOK = True And ZJHB_iRet <> 0
Return ZJHB_endRet
Else
Return 0
End If
End Function
Function KEY_JK(s)
JK_iRet = InStr(s,"JK",1,False) //查找字符串,返回位置
JK_sRet = StrGetAt(s,JK_iRet + 2) //去关键字后的一个字符
JK_isOK = IsSpecificStr(JK_sRet,"number") // 测试这个字符是不是数字
JK_endRet = right(s, (Len(s) - JK_iRet + 1) ) //总长度减去左边的,剩下右边的字符
If JK_isOK = True And JK_iRet <> 0
Return JK_endRet
Else
Return 0
End If
End Function
Function KEY_GZ(s)
GZ_iRet = InStr(s,"GZ",1,False) //查找字符串,返回位置
GZ_sRet = StrGetAt(s,GZ_iRet + 2) //去关键字后的一个字符
GZ_isOK = IsSpecificStr(GZ_sRet,"number") // 测试这个字符是不是数字
GZ_endRet = right(s, (Len(s) - GZ_iRet + 1) ) //总长度减去左边的,剩下右边的字符
If GZ_isOK = True And GZ_iRet <> 0
Return GZ_endRet
Else
Return 0
End If
End Function
Function KEY_CL(s)
CL_iRet = InStr(s,"CL",1,False) //查找字符串,返回位置
CL_sRet = StrGetAt(s,CL_iRet + 2) //去关键字后的一个字符
CL_isOK = IsSpecificStr(CL_sRet,"number") // 测试这个字符是不是数字
CL_endRet = right(s, (Len(s) - CL_iRet + 1) ) //总长度减去左边的,剩下右边的字符
If CL_isOK = True And CL_iRet <> 0
Return CL_endRet
Else
Return 0
End If
End Function
Function KEY_JZZF(s)
JZZF_iRet = InStr(s,"JZZF",1,False) //查找字符串,返回位置
JZZF_sRet = StrGetAt(s,JZZF_iRet + 4) //去关键字后的一个字符
JZZF_isOK = IsSpecificStr(JZZF_sRet,"number") // 测试这个字符是不是数字
JZZF_endRet = right(s, (Len(s) - JZZF_iRet + 1) ) //总长度减去左边的,剩下右边的字符
If JZZF_isOK = True And JZZF_iRet <> 0
Return JZZF_endRet
Else
Return 0
End If
End Function
Function KEY_BX(s)
BX_iRet = InStr(s,"BX",1,False) //查找字符串,返回位置
BX_sRet = StrGetAt(s,BX_iRet + 2) //去关键字后的一个字符
BX_isOK = IsSpecificStr(BX_sRet,"number") // 测试这个字符是不是数字
BX_endRet = right(s, (Len(s) - BX_iRet + 1) ) //总长度减去左边的,剩下右边的字符
If BX_isOK = True And BX_iRet <> 0
Return BX_endRet
Else
Return 0
End If
End Function
Function KEY_ZD(s)
ZD_iRet = InStr(s,"ZD",1,False) //查找字符串,返回位置
ZD_sRet = StrGetAt(s,ZD_iRet + 2) //去关键字后的一个字符
ZD_isOK = IsSpecificStr(ZD_sRet,"number") // 测试这个字符是不是数字
ZD_endRet = right(s, (Len(s) - ZD_iRet + 1) ) //总长度减去左边的,剩下右边的字符
If ZD_isOK = True And ZD_iRet <> 0
Return ZD_endRet
Else
Return 0
End If
End Function