QTP中对textstream的操作
想要脚本实现以下的功能:找到文本中以abcd开头的长度为n的字符串,并且将其删除。请各位大侠指点! 使用split(exp,delimiter)分割textStream(arr),然后将分割的字符头去掉n位(不足N的,和text开头、结尾是abcd的需要考虑),然后join(arr)字符 回复 2# xjwldlover
能否把详细的函数应该如何使用帮忙写一下。
是不是arr就是"abcd",split(exp,delimeter)里的exp又应该是什么?delimeter就是n的值吗?join(arr)又应该如何使用?
另外把这个以"abcd"开头的长度为n的字符串从文本文件中删除应该如何实现?
在此之前,我定义了如下一些对象:
Dim FS, File1, File1Path
File1Path = "C:/aa.txt"
Set FS = CreateObject(File.System.Scripting)
Set File1 = FS.GetFile(File1Path).OpenAsTextStream
目的就是为了实现在File1里找到以"abcd"开头的长度为n的字符串,并且将其删除。这个字符串的特点是以abcd开头且长度为n,但是abcd之后的其余字符在每次文本文件生成后是变化的,不是固定的。
非常感谢!! 你看下,如果有错误的地方自己修改一下
str = "abcd1234567890abcdjgls3213212321aab3213212cdabcdabcdsabcdabcd"
WScript.Echo MoveStr(str,"abcd",8,0)
'函数功能:删除制定字符后的N位字符(不足N位,就有几位删几位)
'Input:strExp-待修改字符串;strDelimiter-分隔符;strMoveLen-删除位数
'output:更新后的字符串
Function MoveStr(byval strExp,byval strDelimiter,byval strMoveLen,byval blnContain)
Dim strArr
' 使用分隔符strDelimiter分解文本strExp
strArr = Split(strExp,strDelimiter)
Dim resDelimiter
If blnContain Then
resDelimiter = ""
Else
resDelimiter = strDelimiter
End If
Dim i
For i = 0 To UBound(strArr)
' 更新取被分解的数组元素str,删除N位之后的字符串
strArr(i) = Mid(strArr(i),strMoveLen+1-Len(strDelimiter),Len(strArr(i)))
Next
' 重新使用原来的分隔符组合该串
MoveStr = Join(strArr,resDelimiter)
End Function
回复 1# alex_topgun
需要这么麻烦么?
每个判断下是否符合条件应该就行了吧。如:
str = "abcde123456789"
if Len(str) = n and left(str,5) = "abcde" Then
'删除动作
End if
页:
[1]