我是C#的新手,并尝试构建一种计算器应用程序,它将从csv文件中读取值,然后继续进行所需的操作。
计算器算法工作正常,但我需要从csv文件填充数组。我使用了StreamReader,但是它将所有值放在一个数组中:
FileStream aFile = new FileStream("d:\test.txt", FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(aFile);
strLine = sr.ReadLine();
while (strLine != null)
{
strArray = strLine.Split(charArray);
for (int x = 1; x <= strArray.GetUpperBound(0); x++)
{
Console.WriteLine(strArray[x].Trim());
我需要将单独的行读入单独的数组,这些行可以是动态的(即csv文件可以有n行,这将需要n个数组)。计算器算法如下,工作正常。我只需要如何使用上面的代码将csv读入数组并在下面的代码中使用这些数组(下面的代码,虽然摘录,工作正常)。请帮忙。
for (int p = 0; p < n; p++)
{
for (int j = 0; j < t; j++)
{
sum[j] = w[p, j] * a[p, j];
k[p] = k[p] + sum[j];
}
}
double loa=0;
for (int i = 0; i < n; i++)
{
loa1[i] = k[i] * v[i];
loa += loa1[i];
答案 0 :(得分:0)
TextFieldParser课程非常适合阅读CSV文件。
TextFieldParser parser = new TextFieldParser("filename.txt");
parser.Delimiters = new[] { "," };
while (!parser.EndOfData)
{
string[] fields = parser.ReadFields();
//process this line of fields, or store it for later processing
}
然后,您可以使用int.TryParse
或double.TryParse
将相应的字符串转换为数字值。
答案 1 :(得分:0)
非常感谢您的评论和帮助 - 非常感谢。我能够使用以下方式单独读取行:
using (TextFieldParser fieldParser = new TextFieldParser(name)) "d:\\test1.txt"))
{
parts = fieldParser.ReadFields();
然后使用:
保持双数组中单独行的值double[] array = Array.ConvertAll(parts, double.Parse);
然后我使用了一个计数器和EndOfData属性来管理定义单独数组的行开关:
counter++;
if (fieldParser.EndOfData)
{
再次感谢。计算器现在正在运行,可在http://thaddeus-eze.com
处获得