需要帮助从文件中提取数据

时间:2016-08-31 19:49:01

标签: c# streamreader

我正在学习如何使用C#读取和写入外部文本文件(是的,这是课堂作业,现在已经解决了这个问题),而且我有点碰壁了。请参阅,此任务的第一部分是创建一个程序,可以在创建具有ID号,名称和当前余额字段的Customer类之后将客户记录写入外部文件,我这样做了。

我的困境是我现在必须创建一个程序来搜索我用第一个创建的文件,并将每行打印到控制台,余额大于或等于用户提供的最小余额。我在如何实际做到这一点上空白了。

就我而言:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
using System.IO;

namespace FindCustomerRecords2
{
    class Program
    {
        static void Main(string[] args)
        {
            //Intialize variables
            double minBal;
            string line;

            //Prompt user to enter minimum balance and store in minBal
            Write("Please enter a minimum balance to pull up\n" +
                  "all customers that owe at least that much.");
            minBal = Convert.ToDouble(ReadLine());

            //Open data stream to CustomerRecords.txt
            StreamReader file = new StreamReader(@"H:\C#\Visual C# 2015\Ch. 14 - Files and Streams\CustomerRecords.txt");
            //Loop through CustomerRecords.txt, find values
            //greater than or euqal to minBal, and display
            //each line with such a value
            while((line = file.ReadLine()) != null)
            {

            }
        }
    }
}

现在,我不希望得到答案,我真的不知道该用什么来完成我被要求做的事情。有谁愿意帮助我吗?

编辑:我最终发现了我做错了什么。对于将来可能遇到同样问题的任何人的未来参考:我通过使用Split()将数据分配给一个名为fields的数组,然后将每个数组的字段位置分配给名为id,name,并平衡,并在if语句中将每个余额与minBal进行比较,如下所示:

fields = recordIn.Split(DELIM);
                id = Convert.ToInt32(fields[0]);
                name = fields[1];
                balance = Convert.ToDouble(fields[2]);

感谢所有回复的人。

1 个答案:

答案 0 :(得分:0)

仔细查看你的while循环:

while((line = file.ReadLine()) != null)
{

}

此时在循环内部,您应该拥有以下数据:

45454, Glenn Matthews, 54.87

如果没有,则表示您错误地创建了CSV文件。我们暂时假设您正确创建了它。您如何从line变量中获取价值,以便将其与minBal变量进行比较?如果你可以找出那部分,那么你可以自己解决剩下的部分。

您可以使用哪些工具(例如字符串方法)来帮助实现这一目标?

也可能有Stream / StreamReader方法也可以帮助您。祝你好运!

相关问题