当前位置: 代码迷 >> vbScript >> [QTP]透过vbscript往文本文件中指定位置插入指定内容
  详细解决方案

[QTP]透过vbscript往文本文件中指定位置插入指定内容

热度:696   发布时间:2013-01-28 11:49:56.0
[QTP]通过vbscript往文本文件中指定位置插入指定内容

'作者:席飞剑

'日期:2013-1-25

'功能:往文本文件中指定位置插入指定内容

'参数:txtFile为需要读取的文件,可以根据需要将以下操作封装成一个函数。

'>>>>>>>>>>>>>>>>>尝试往文本文件中指定位置插入指定的文本内容<<<<<<<<<<<<<<<<<<<<

假设:"C:\Users\xifeijian\Desktop\test.txt"存在,并且文件内容为:

111111111
222222222
333333333
444444444

目标:希望在

333333333
444444444之间插入指定的内容I'm xifeijian

实现:

vbscript没有指针,所以实现这类功能,没有其它高级程序语言那么方便,可以直接seek到某位置,再插入需要的内容,换个思路,可以通过split函数将原内容按标记符进行分组,再拼接也是一个不错的选择:

Const ForReading = 1, ForWriting = 2
  Dim fso, oFile
  txtFile="C:\Users\xifeijian\Desktop\test.txt"
  Set fso = CreateObject("Scripting.FileSystemObject")
  If fso.FileExists(txtFile) Then
   Set oFile= fso.OpenTextFile(txtFile,ForReading)
   ReadLineTextFile =oFile.ReadLine  '读取文件第一行内容 
   While oFile.AtEndOfStream = false
    ReadLineTextFile = ReadLineTextFile &vbnewline& oFile.ReadLine  '遍历文件其它内容
   wend
   Set oFile= fso.OpenTextFile(txtFile,ForWriting)
   deli1="333333333"   '需要插入内容的起始位置
   toAdd1="I'm xifeijian"    '需要插入的文本内容
   arr=split(ReadLineTextFile,deli1,-1,1)    '按照指定分隔符进行字符串分割,但这里我并未做是否能够找到指定分隔符的异常处理,否则后续使用arr(0)时会报数组越界的。
   ReadLineTextFile=arr(0)&deli1&toAdd1&arr(1)
'   msgbox ReadLineTextFile
   oFile.Write ReadLineTextFile
   oFile.close()    '关闭对象
  else
   print "File Not Found"
  End If

  Set fso = nothing  '释放对象

运行结束后,文本文件的内容则变为:

111111111
222222222
333333333I'm xifeijian
444444444


 

 

  相关解决方案