[英]How to Split Strings and Store in Array in C# and How to Add New Line After a Particular String
`I want to read the info1.txt file and want to write in another text file info2.txt in this manner, `我想读取info1.txt文件,想用这种方式写入另一个文本文件info2.txt ,
Id Name Address DOB Phone
1 abcd efg 1/16/2021 987654323
2 hijkl mno 2/16/2021 678987652
This is info1.txt这是info1.txt
Id:1
Name:abcd
Address:efg
DOB:1/16/2021 3:31:22 PM
Phone:987654323
Id:2
Name:hijkl
Address:mno
DOB:2/16/2021 3:31:22 PM
Phone:678987652
And the info2.txt would be like above table format that I mentioned,also want to remove " 3:31:22 PM"而且info2.txt就像我提到的上面的表格格式,也想删除“ 3:31:22 PM”
My Code我的代码
static void Main(string[] args)
{
FileStream fsRead = new FileStream("E:\\Assignment\\info1.txt", FileMode.Open, FileAccess.Read);
StreamReader srObj = new StreamReader(fsRead);
FileStream fsWrite = new FileStream("E:\\Assignment\\info2.txt", FileMode.Create, FileAccess.Write);
StreamWriter swObj = new StreamWriter(fsWrite);
while (srObj.Peek() > 0)
{
string str;
string[] strArray;
str = srObj.ReadLine();
str = str.Replace(" 3:31:22 PM", "");
strArray = str.Split(':');
if (strArray.Length > 1)
{
swObj.Write(strArray[1]);
swObj.Write(" ");
}
}
swObj.Close();
fsWrite.Close();
srObj.Close();
fsRead.Close();
Console.ReadKey();
}
I would parse the file into a list of dictionaries where each dictionary's keys are the columns.我会将文件解析为字典列表,其中每个字典的键都是列。
First split the file lines into an array of strings.首先将文件行拆分为字符串数组。 You can use
File.ReadAllLines
for that.您可以为此使用
File.ReadAllLines
。 Then send the array to this function that parses the lines.然后将数组发送到解析行的 function。
public static List<Dictionary<string, string>> Parse(string [] lines)
{
List<Dictionary<string, string>> data = new List<Dictionary<string, string>>();
Dictionary<string, string> temp = new Dictionary<string, string>();
foreach (var line in lines) {
var parts = line.Split(new[] { ':' }, 2);
if (parts.Length == 2) {
temp[parts[0]] = parts[1];
}
else {
if (temp.Count > 0) data.Add(temp);
temp = new Dictionary<string, string>();
}
}
if (temp.Count > 0) data.Add(temp);
return data;
}
Then, make a function to write the list to a file.然后,制作一个 function 将列表写入文件。
public static void PrintTable(List<Dictionary<string, string>> users, TextWriter stream)
{
if (users.Count == 0) return;
// Print the header line
foreach(var pair in users[0]) {
stream.Write("{0,-12}", pair.Key);
}
stream.WriteLine();
foreach (var user in users) {
foreach(var pair in user) {
// Special handling for DOB
if (pair.Key == "DOB") stream.Write("{0,-12}", pair.Value.Split(' ')[0]);
else stream.Write("{0,-12}", pair.Value);
}
stream.WriteLine();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.