需要帮助从文件中提取数据
Need Help Pulling Data From A File
我正在学习如何使用 C# 读取和写入外部文本文件(是的,这是 class 工作,现在解决这个问题),但我有点碰壁了.你看,这个作业的第一部分是创建一个可以将客户记录写入外部文件的程序,在我创建了一个带有 ID 号、姓名和当前余额字段的客户 class 之后。
我的困境是我现在必须创建一个程序来搜索我用第一个文件创建的文件,然后将余额大于或等于用户提供的最小余额的每一行打印到控制台.我对如何实际执行此操作一无所知。
据我所知:
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() 将数据分配给一个名为字段的数组,然后将字段的每个数组位置分配给名为 id、name、和余额,并在 if 语句中将每个余额与 minBal 进行比较,如下所示:
fields = recordIn.Split(DELIM);
id = Convert.ToInt32(fields[0]);
name = fields[1];
balance = Convert.ToDouble(fields[2]);
感谢所有回复的人。
仔细看看你的 while 循环:
while((line = file.ReadLine()) != null)
{
}
此时在循环内部,您应该有以下数据:
45454, Glenn Matthews, 54.87
如果不是,则您创建的 CSV 文件不正确。现在让我们假设您正确地创建了它。您将如何从 line
变量中获取值以便将其与 minBal
变量进行比较?如果你能弄清楚那部分,那么你可能可以自己解决剩下的部分。
您可以使用哪些工具(例如字符串方法)来帮助您做到这一点?
可能还有 Stream/StreamReader 方法可以帮助您。祝你好运!
我正在学习如何使用 C# 读取和写入外部文本文件(是的,这是 class 工作,现在解决这个问题),但我有点碰壁了.你看,这个作业的第一部分是创建一个可以将客户记录写入外部文件的程序,在我创建了一个带有 ID 号、姓名和当前余额字段的客户 class 之后。
我的困境是我现在必须创建一个程序来搜索我用第一个文件创建的文件,然后将余额大于或等于用户提供的最小余额的每一行打印到控制台.我对如何实际执行此操作一无所知。
据我所知:
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() 将数据分配给一个名为字段的数组,然后将字段的每个数组位置分配给名为 id、name、和余额,并在 if 语句中将每个余额与 minBal 进行比较,如下所示:
fields = recordIn.Split(DELIM);
id = Convert.ToInt32(fields[0]);
name = fields[1];
balance = Convert.ToDouble(fields[2]);
感谢所有回复的人。
仔细看看你的 while 循环:
while((line = file.ReadLine()) != null)
{
}
此时在循环内部,您应该有以下数据:
45454, Glenn Matthews, 54.87
如果不是,则您创建的 CSV 文件不正确。现在让我们假设您正确地创建了它。您将如何从 line
变量中获取值以便将其与 minBal
变量进行比较?如果你能弄清楚那部分,那么你可能可以自己解决剩下的部分。
您可以使用哪些工具(例如字符串方法)来帮助您做到这一点?
可能还有 Stream/StreamReader 方法可以帮助您。祝你好运!