2015-08-22 42 views
-2

我需要解析的文本文件的格式如下:解析文本文件有600萬條+線

and -0.436527 -0.515304 -0.002056 -0.227969 0.177528 0.201756... 
with 0.101336 0.493859 -0.081095 -0.391502 -0.111579 0.388659... 
voice -0.168610 0.413912 0.423446 0.484159 -0.546614 0.558571... 

可能有100個這樣的結尾數字。現在我需要搜索某個文本,比如說語音,並將數字存儲在一個數組或任何更快的數據結構中,並對其進行一些數學運算。什麼是實現它的最快方法? 文本文件大小可能爲100 + MB!

謝謝!

+0

http://stackoverflow.com/questions/8037070/whats-the-fastest-way-to-read-a-text-file -line-by-line –

回答

1

嘗試使用File.ReadLines和分析的結果與LINQ:

double[] numbers = File.ReadLines(path) 
        .Where(line => line.Contains("voice")) 
        .SelectMany(line => line.Split()) 
        .Where(str => str.All(c => Char.IsDigit(c) || c == '-' || c == '.')) 
        .Select(str => Double.Parse(str, CultureInfo.InvariantCulture)) 
        .ToArray(); 
+0

我得到這個錯誤'在Double.Parse(str,CultureInfo.InvariantCulture)中輸入字符串的格式不正確''' –