查找文本文档中的所有数字并进行操作

时间:2012-06-06 14:12:59

标签: parsing numbers

我有一系列包含以下数据的文本文档:

[...]
Please prepare the subject, then press SPACE
We are testing peripheral vision with a black & white stimulus
45 degree stimulus of 0.728097 logMAR presented
Good response
45 degree stimulus of 0.686705 logMAR presented
Bad response
REVERSAL
Acuity at reversal 7 (experiment 3) was 0.686705 logMAR
135 degree stimulus of 0.732462 logMAR presented
Good response
45 degree stimulus of 0.732462 logMAR presented
[...]

换句话说,它的格式没有很多统一性。这个数据是我用于博士学位的一个例程输出的。愚蠢的是,我得到了一些错误的计算,这意味着我的数字都比他们应该的低0.3。

可以查看我的所有文本文档并手动调整所有数字,但是有很多文档,每个文档都有很多数字。

任何人都可以建议使用预先存在的软件或合适的方法(我可以使用MATLAB,C ++,Java或Python)来检测文本文档中包含的所有浮点数并向它们添加0.3吗?

n.b。我不一定在寻找一个涉及我编程的解决方案,但鉴于这是一个非常定制的问题,我觉得它可能涉及写一些东西!

感谢所有建议:)

2 个答案:

答案 0 :(得分:1)

这是一个用于完成工作的微软引擎的简单javascript

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var fName = WScript.Arguments(0);
var f = FSO.OpenTextFile(fName, 1);
var fw = FSO.OpenTextFile(fName +".new", 2, true);

while (!f.AtEndOfStream)
    fw.WriteLine(f.ReadLine().replace(/\b\d+\.(\d+)\b/g,
        function($0, $1) {
            return (+$0+0.3).toFixed($1.length);
        }
    ));

f.Close();
fw.Close();

我假设固定点,没有前导或悬空小数点

答案 1 :(得分:0)

我不知道可以做到这一点的软件,但是通过编写Python脚本可以轻松解决您的问题。只需提取X文档中的所有浮点数,向其中添加0.3,然后将结果输出到新的文本文件。对所有文档执行此操作。可以在Web上找到用于检测浮点数的语法。希望这会有所帮助。