0

我是编程新手,所以请原谅我的幼稚问题。

我有 double[] 数组,我设法使用以下代码将其写入文本文件:

using (System.IO.StreamWriter outfile = new System.IO.StreamWriter(@"C:\Seasonality.txt") )
  {
     for (int raw = 1; raw <54; raw++)
     {
       outfile.Write("{0} ",array[raw]);
     }
  }

输出文本文件(1 个原始文件)由 54 条由空格分隔的记录组成,如下所示:

1.323 2.3443 2.367 5.3453 0.3432 1.754 ........etc 

我想要实现的是一个函数,我通过传递它的索引来读取一个值,即 index = 1 用于文件中的第一个值,或 index = 5 用于文件中的第五个值等。

Double GetValue (int index) 
{
.....
}

PS:如果您认为将输出文件结构更改为每行一个值会减轻任务,请提出建议。

提前致谢

4

4 回答 4

1

为了完整起见,因为您提到了将每个值拆分为行的选项 - 如果您这样做了,它将是:

var item = File.ReadLines(path).Skip(index-1).First();

(加上解析最终值)

于 2013-04-29T17:49:50.007 回答
1

您可以执行以下操作,

double GetValue(int index)
{
    return double.Parse(File.ReadLines(path).First().Split()[index-1]);
}

注意: 更好的是,您可以对读取行的结果进行更多验证,拆分有足够的项目以按给定索引获取并用于double.TryParse转换。

于 2013-04-29T17:59:14.837 回答
0

你需要做一些事情。

第一:将文件加载到字符串中。您可以使用 File.ReadAllText() 或类似的东西(如果需要,可以使用 IO 流)。

接下来,您需要解析数据。您的项目由空格分隔,因此您将要使用 stringName.split(' '); 其中 stringName 是您用于刚刚加载的文件的变量,而 ' ' 表示空格字符(不确定您有多新,但“”是字符串,而 ' ' 是字符)。

最后,您想要获取正确的索引,该索引实际上应该与您保存的数组相同,因为您只是重新加载它。

希望这可以帮助!

编辑:忘记了你需要在最后做 double.parse 的事情来返回你的值,正如其他人所展示的那样。

于 2013-04-29T17:52:54.530 回答
0
double GetValue(int index)
{   
   return double.Parse(System.IO.File.ReadAllLines(your file)[0].Split(' ')[index]);
}
于 2013-04-29T17:48:36.817 回答