Board logo

标题: [问题求助] vbs如何提取一个文本里特定行中的指定内容并替换掉另一个文本特定行中的指定内容 [打印本页]

作者: zll855    时间: 2016-9-19 14:28     标题: vbs如何提取一个文本里特定行中的指定内容并替换掉另一个文本特定行中的指定内容

本帖最后由 pcl_test 于 2016-9-19 15:53 编辑

提取指定数字再,除法算出数字再替换替换原有数字,略复杂求大神帮忙
此为文本内容
  1.       1        : 85.000000%
  2.       2        : 3.30GHz  8 cores
  3.       3         :99.493383%
  4.       4        : 7601
复制代码
首先根据特征提取出第二行GHz和cores之间的数字8(数字随机),然后用这个数字乘以 0.65(就是8乘以0.65=5.2)获得答案数值后只提取小数点前的数字5
然后在把这个5替换掉另一个文本中的2并保存文本
  1. -s  2  -g -1 -o
复制代码
替换后应为
  1. -s  5  -g -1 -o
复制代码
批处理或者vbs都行 最好是vbs 求前辈帮忙



我只能用vbs提取出文本指定数字 下面的就不行了
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. ss = Split(FSO.OpenTextFile("1.txt").ReadAll, "GHz")
  3. Set f2 = FSO.OpenTextFile("2.txt", 2, True)
  4. For i = 1 To UBound(ss)
  5. f2.WriteLine Trim(Split(ss(i), " cores ")(0))
  6. Next
  7. f2.Close
复制代码

作者: pcl_test    时间: 2016-9-19 15:49

  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set reg = New RegExp
  3. Set f1 = fso.OpenTextFile("1.txt", 1)
  4. reg.Pattern = "GHz\s+(\d+)\s+cores"
  5. n = reg.Execute(f1.ReadAll)(0).SubMatches(0)
  6. f1.Close()
  7. Set f2 = fso.OpenTextFile("2.txt", 1)
  8. text = f2.ReadAll
  9. f2.Close()
  10. reg.Pattern = "(-s\s+)\d+(\s+-g)"
  11. msgbox reg.replace(text, "$1"&int(n*.65)&"$2")
复制代码

作者: zll855    时间: 2016-9-19 16:07

回复 2# pcl_test


    前辈有运算这替换部分吗




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2