如何从字符串文本中拆解出多个数值并计算
对于字母符号数值混排的文本文件,可以拷入Excel再拆解,但公式过于复杂,普通人难以掌握。用VBA\JAVA\Python等开发语言也可以解决这个问题,但代码冗长繁琐,还要使用难懂的正则表达式,实现起来更加困难。
如果用esProc就会简单很多。比如文本文件的其中一行是"Jeff spent 13.5$ for cola, 5.2$ for coat,and 21$ for toys",要对该文件中的所有数值求和,esProc代码可以写成:
A |
B |
|
1 |
=file("data.txt").read() |
/读入文本,形成一个大字符串 |
2 |
=A1.word@d() |
/拆解出所有的数值,包括小数 |
3 |
=A2.sum() |
/求和 |
如果不是对整体求和,而是按行求和,代码也很简单:
A |
B |
|
1 |
=file("data.txt").import@i() |
/读入文本,每行一个字符串 |
2 |
=A1.new(~.words@s()(1):name,~.words@d():numbers) |
/按行拆分,形成两列,name列存该行单词中的第一个(名字),numbers存数值 |
3 |
=A2.derive(numbers.sum()) |
/新加一列,对numbers里的数值求和 |
esProc 是个脚本语言,可以在 IDE 里反复执行,还可以用命令行方式调用。
类似其它的文件计算例子:比较 csv 文件中数据差异
处理 Excel 也不是问题:excel 合并汇总
这里有总结的更多文本计算例子,涵盖了常见的结构化数据的运算:SPL 结构化文本计算
esProc 是专业的文件处理脚本,即安即用,调试方便,类库丰富,详情参考:文件处理器
关于集算器安装使用、获得免费授权和相关技术资料,可以参见:如何使用集算器