返回列表 发帖

[问题求助] 【已解决】vbs怎么求txt文件中所有指定字符后面数字的最小值和最大值

本帖最后由 pcl_test 于 2016-8-16 20:30 编辑

vbs怎么求txt文件中所有Z后面数字的最小值和最大值?说明:Z之前有一空格,之后是数字(包括正数负数),
另外此文件大小有10M以上,下列代码只是样例。以下是123.txt文件内容
G00 X103.5 Y14.218 S3500 M03
G43 Z19.429 H02
Z-14.477
G01 Z-14.77 F1500.
X102.479 Z-15.012
X86.047 Y30.86 Z-15.312
G03 X87.002 Y27.983 Z-16.012 I-19.052 J-.001
G01 Z-50.013
Z30.
G01 Z-14.977 F1500.
X102.479 Z-15.012
X86.047 Y30.86 Z-15.012COPY
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 3# pcl_test

运行到此句时报错MsgBox "最大"&objExcel.Max(arr)&vbCrLf&"最小"&objExcel.Min(arr)
   类型不匹配‘objExcel.Max’

TOP

找到一个JS的,速度非常快,可不知用这思路vbs能否实现
path = "123.txt";
fso = new ActiveXObject('Scripting.FileSystemObject');
Znums = fso.OpenTextfile(path).ReadAll().match(/\bZ[-.\d]+\b/gi);
Znums = Znums.join(',').replace(/Z/gi,'').split(',');
Zmin = parseFloat(Znums[0]);
for (i=0;i<Znums.length;i++) {
    Znum = parseFloat(Znums[i]);
    if(Znum<Zmin) Zmin=Znum;
}
Zmax = parseFloat(Znums[0]);
for (i=0;i<Znums.length;i++) {
    Znum = parseFloat(Znums[i]);
    if(Znum>Zmax) Zmax=Znum;
}
WScript.Echo(Zmax + "/" + Zmin);COPY

TOP

回复 10# WHY


   找到一个JS的,速度非常快,可不知用这思路vbs能否实现

TOP

回复 15# 依山居


   多谢您回复,但我不会用python,不知这代码保存为什么格式,是否要编辑

TOP

返回列表