如何在c#console中从txt读取和写入一行中的特定单词

时间:2017-03-17 01:59:05

标签: c# console-application

我需要获取包含

的txt文件的计算产品代码,价格和库存
<form role="search" method="get" id="searchform" class="searchform" action="//example.com/">
<div class="box">
   <div class="container-1">
      <input type="text" value="" name="s" id="s" placeholder="Search..." />
      <button type="submit" id="searchsubmit" />
           <span class="icon"><i class="fa fa-search"></i></span>   
      </button>
   </div>
</div>
</form>

我试过

//product code;product name;price;stock;
c01;cappuccino;3500;12;
c02;mocaccino;4000;15;
c03;black coffe;3000;10;
c04;chocolate milk;5000;19;
c05;vanilla milk;5000;12;
c06;strawberry milk;5000;13;
c07;coke;3000;13;
c08;fanta;3000;15;
c09;sprite;3000;9;
c10;orange juice;4500;10;
c11;apple juice;4500;9;
c12;mango juice;4500;18;

但是line.contains中的会给出错误的红色下划线,我是否缺少使用命名空间?

我也试过

if(line.Contains(""))

作为获取单词的练习,但它返回来自txt的所有内容

2 个答案:

答案 0 :(得分:1)

使用以下类和代码,您将能够提取所需的数据,以便进行计算和其他操作。

它基本上逐行读取文件并将它们解析为对象 通过检查"//"来跳过第一行。

希望这符合您的需求。

产品类

public class Product
{
    public string Code { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Stock { get; set; }
}

文件解析

var products = new List<Product>();

using (var fileStream = new FileStream("product.txt", FileMode.OpenOrCreate, FileAccess.Read))
using (var streamReader = new StreamReader(fileStream))
{
    string line;
    while (!String.IsNullOrWhiteSpace((line = streamReader.ReadLine())))
    {
        if (!line.StartsWith("//"))
        {
            var lineSplit = line.Split(';');
            products.Add(new Product
            {
                Code = lineSplit[0],
                Name = lineSplit[1],
                Price = Decimal.Parse(lineSplit[2]),
                Stock = Int32.Parse(lineSplit[3])
            });
        }
    }
}

答案 1 :(得分:0)

如果你想迭代这些值,你可以这样做:

var streamReader = new StreamReader(new FileStream("c:\\file.txt"));

while(!streamReader.EndOfStream)
{
var line = streamReader.ReadLine()
var values = line.Split(';');
for(var i = 0; i < line.Length; i++)
    Console.WriteLine(values[i]); //example usage
}