我有一個文件,其中包含大量的數字,我想減少構建一個新的文件。首先,我使用File.ReadAllText
提取所有文本,然後從每行中分離並提取數字,其中包含用逗號或空格分隔的數字。掃描結束後,我替換每個發現號所有出現的新的數量減少,但問題是,這種方法很容易出錯,因爲一些數字被替換不止一次實時搜索並替換
更下面是我使用的代碼:
List<float> oPaths = new List<float>();
List<float> nPaths = new List<float>();
var far = File.ReadAllText("paths.js");
foreach(var s in far.Split('\n'))
{
//if it starts with this that means there are some numbers
if (s.StartsWith("\t\tpath:"))
{
var paths = s.Substring(10).Split(new[]{',', ' '});
foreach(var n in paths)
{
float di;
if(float.TryParse(n, out di))
{
if(oPaths.Contains(di)) break;
oPaths.Add(di);
nPaths.Add(di * 3/4);
}
}
}
}
//second iteration to replace old numbers with new ones
var ns = far;
for (int i = 0; i < oPaths.Count; i++)
{
var od = oPaths[i].ToString();
var nd = nPaths[i].ToString();
ns = ns.Replace(od, nd);
}
File.WriteAllText("npaths.js", ns);
正如你所看到的,上面的方法是多餘的,因爲它不能實時替換字符串。也許我的頭已滿,但我對如何解決這個問題感到失落。有任何想法嗎?
謝謝。
高超,比我更快。謝謝 –