从文本文件中读取并将每行拆分为不同的字符串
本文关键字:拆分 字符串 文件 文本 读取 | 更新日期: 2023-09-27 18:15:27
我必须从包含以下格式的文本文件中读取
PRODUCTID PRODUCTNAME CUSTOMERID CUSTOMERNAME AMOUNT.
文本文件包含11行,每一行我必须存储每个eg。Productid为一个字符串,productname为一个字符串。
我已经尝试过这样,它只存储每行的长度..
List<string> list = new List<string>();
using (var reader = new StreamReader(@"Budget.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
list.Add(line);
}
}
编辑:创建一个类来保存数据
创建一个表示文件行的类,如下所示:
public class Procuct {
public string ProductId {get;set;}
public string ProductName {get;set;}
public string CustomerId {get;set;}
public string CustomerName {get;set;}
public string Amount{get;set;}
}
然后创建一个产品列表来存储它们:
List<Procuct> list = new List<Procuct>();
using (var reader = new StreamReader(@"Budget.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
var temp = line.Split(" ");
list.Add(new Product{
ProductId = temp[0],
ProductName = temp[1],
CustomerId = temp[2],
CustomerName = temp[3],
Amount = temp[4]
});
}
}
一旦被存储,你可以使用LINQ来获取你想要的信息。
您必须与TextFieldParser类一起工作,它用于解析分隔的文本字符作为列
using System;
using Microsoft.VisualBasic.FileIO;
class Program
{
static void Main()
{
using (TextFieldParser parser = new TextFieldParser("C:''csv.txt"))
{
parser.Delimiters = new string[] { " " };
while (true)
{
string[] parts = parser.ReadFields();
if (parts == null)
{
break;
}
Console.WriteLine("{0} field(s)", parts.Length);
}
}
}
}
这个主题有一个有用的例子
你可以使用下面的代码来获得你想要的
static void Main(String[] args) {
var allRecords = new List<Record>();
foreach (var line in File.ReadLines("Budget.txt")) {
allRecords.Add(new Record(line));
}
}
public class Record {
public string ProductId { get; private set; }
public string ProductName { get; private set; }
public string CustomerId { get; private set; }
public string CustomerName { get; private set; }
public decimal Amount { get; private set; }
public Record(string line) {
var items = line.Split();
ProductId = items[0];
ProductName = items[1];
CustomerId = items[2];
CustomerName = items[3];
Amount = Convert.ToDecimal(items[4]);
}
public override String ToString() {
return $"ProductId:{ProductId}, ProductName:{ProductName}, CustomerId:{CustomerId}, CustomerName:{CustomerName}, Amount:{Amount}";
}
}
由于你的问题不是很清楚,我假设你的文件格式如下面的例子所示
10 Enchiladas 27 John Doe 15.00
11 HotDogs 27 John Doe 5.00
12 Burgers 29 Jane Doe 10.00
.
.
.
and so on