我正在学习如何使用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]);
感谢所有回复的人。
答案 0 :(得分:0)
仔细查看你的while循环:
while((line = file.ReadLine()) != null)
{
}
此时在循环内部,您应该拥有以下数据:
45454, Glenn Matthews, 54.87
如果没有,则表示您错误地创建了CSV文件。我们暂时假设您正确创建了它。您如何从line
变量中获取价值,以便将其与minBal
变量进行比较?如果你可以找出那部分,那么你可以自己解决剩下的部分。
您可以使用哪些工具(例如字符串方法)来帮助实现这一目标?
也可能有Stream / StreamReader方法也可以帮助您。祝你好运!