我需要获取包含
的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的所有内容
答案 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
}