基本上我需要有人来帮助我,或者向我展示一些代码,这些代码可以让我从一个名为c1.txt的文件中读取名称和价格。
这就是我已经拥有的。
TextReader c1 = new StreamReader("c1.txt");
if (cse == "c1")
{
string compc1;
compc1 = c1.ReadLine();
Console.WriteLine(compc1);
Console.WriteLine();
compcase = compc1;
compcasecost = 89.99;
}
如何选择要从文本文档中读取的行会很棒。
答案 0 :(得分:10)
您尚未告诉我们文本文件的格式。我将假设以下内容:
Milk|2.69
Eggs|1.79
Yogurt|2.99
Soy milk|3.79
您也没有指定输出。我将假设以下内容:
Name = Milk, Price = 2.69
Name = Eggs, Price = 1.79
Name = Yogurt, Price = 2.99
Name = Soy milk, Price = 3.79
然后,以下内容将读取此类文件并生成所需的输出。
using(TextReader tr = new StreamReader("c1.txt")) {
string line;
while((line = tr.ReadLine()) != null) {
string[] fields = line.Split('|');
string name = fields[0];
decimal price = Decimal.Parse(fields[1]);
Console.WriteLine(
String.Format("Name = {0}, Price = {1}", name, price)
);
}
}
如果您的分隔符不同,则需要将参数'|'
更改为方法String.Split
(在名为String
的{{1}}实例上调用为line
})。
如果您的格式需要不同,那么您需要使用
行line.Split('|')
如果您有任何问题,请与我们联系。
答案 1 :(得分:0)
static void ReadText()
{
//open the file, read it, put each line into an array of strings
//and then close the file
string[] text = File.ReadAllLines("c1.txt");
//use StringBuilder instead of string to optimize performance
StringBuilder name = null;
StringBuilder price = null;
foreach (string line in text)
{
//get the name of the product (the string before the separator "," )
name = new StringBuilder((line.Split(','))[0]);
//get the Price (the string after the separator "," )
price = new StringBuilder((line.Split(','))[1]);
//finally format and display the result in the Console
Console.WriteLine("Name = {0}, Price = {1}", name, price);
}
它提供与@Jason方法相同的结果,但我认为这是一个优化版本。
答案 2 :(得分:0)
您也可以尝试使用解析帮助程序类作为起点,例如http://www.blackbeltcoder.com/Articles/strings/a-text-parsing-helper-class中描述的那个。