[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 pcl_test 于 2015-11-8 09:59 编辑
  1. Dim arr()
  2. i = 0
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. Set f = fso.OpenTextFile("测试.txt",1)
  5. Do While f.AtEndOfStream <> True
  6.     str = f.ReadLine
  7.     GetZ(str)
  8. Loop
  9. f.Close
  10. '调用Excel函数
  11. Set objExcel= CreateObject("Excel.Application")
  12. MsgBox "最大"&objExcel.Max(arr)&vbCrLf&"最小"&objExcel.Min(arr)
  13. Function GetZ(str)
  14.     Set regEx = New RegExp
  15.     regEx.Pattern = "\bZ(-?\d+\.?\d*)"
  16.     regEx.Global = True
  17.     If regEx.Test(str) Then
  18.         Set Matches = regEx.Execute(str)
  19.         For Each Match in Matches
  20.             ReDim Preserve arr(i)
  21.             arr(i) = CDbl(Match.SubMatches(0))
  22.             i = i+1
  23.         Next
  24.     End If
  25. End Function
复制代码
1

评分人数

TOP

回复 8# 依山居

匹配的是Z30,30.0是因为float(r)所得
1

评分人数

TOP

第三方http://www.bathome.net/s/tool/index.html?key=gawk
  1. #*&cls&@gawk -f "%~f0" "1.txt">con&pause&exit
  2. {
  3.     for(i=1;i<=NF;i++){if($i~/Z-?[0-9]+\.?[0-9]*/)a[substr($i,2)]=substr($i,2)*1}
  4. }
  5. END{
  6.     len=asort(a,b); printf("最大%.3f\n最小%.3f\n",b[len],b[1]);
  7. }
复制代码

TOP

返回列表