将文本文件转换为特定格式c#

时间:2016-01-23 20:35:51

标签: c# parsing file-io

我有一个包含数字的文本文件,每个数字都由一个标签分隔。这些数字也有几行。我想读取文件并将文件存储到一个数组中,但我不知道该怎么做。

示例文件内容

   137  12.36922    .28200   4312170     .0550  108.4431   14.9959
   127  12.23045    .28200  10400044  140.9635   22.9278   19.8656
   514  12.91381    .42300  12550428     .1157   61.7263  123.4808
   209  12.26951    .28200  10432158     .0361    8.4094   69.3899
   271  12.68842    .35250     91375     .0663    3.6094   25.2950
   548  12.99388    .49350   2131433     .1386     .6384   78.6621
   314  12.54900    .35250  12469075     .1451   44.1327  115.9872
  1466  13.40586    .63450     27236  140.6160   53.3465   65.4476
    55  11.97313    .21150    100246     .0911   63.5528   60.7556
    27  11.66276    .21150  12353651  140.9790   42.3193  110.4559
    44  11.81954    .21150  10420688     .0447   38.5853    3.6592

2 个答案:

答案 0 :(得分:2)

假设数字是浮点数(你可以解析为你喜欢的任何类型,这只是一个例子)那么你可以这样做:

string myFileString = System.IO.File.ReadAllText(@"C:\Temp\MyFile.txt");

string[] myStringArray = myFileString.Split('\t');

List<float> myNumberList = new List<float>();

foreach (string s in myStringArray)
{
    myNumberList.Add(float.Parse(s.Trim()));
}

答案 1 :(得分:2)

最简单的方法是使用Linq

var text = File.ReadAllText(@"Your file path goes here");
var result = text.Split(" \r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)?.Select(num => double.Parse(num)).ToArray()

如果您想要排序数据,则可以使用OrderByOrderByDescending扩展方法:

var result = text.Split(" \r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)?.Select(num => double.Parse(num)).OrderBy(d => d).ToArray()