C#文本文件浏览和文件写入
我有一个非常大的文本文件(大约35000多行信息),我想从中提取某些行并将它们放在另一个文本文件中 文本文件如下所示:C#文本文件浏览和文件写入,c#,forms,file-io,C#,Forms,File Io,我有一个非常大的文本文件(大约35000多行信息),我想从中提取某些行并将它们放在另一个文本文件中 文本文件如下所示: Feature info Feature name: 123456 Version: 1 Tokens total: 35 Tokens remaining: 10 我想提取特征名称和标记总数。我想到的是一个有两个按钮的表单:一个用于浏览文件,另一个用于对文件部分执行整个读写操作,当然是以相同的逐行格式 有人知道怎么做吗?我已经搜索过
Feature info
Feature name: 123456
Version: 1
Tokens total: 35
Tokens remaining: 10
我想提取特征名称和标记总数。我想到的是一个有两个按钮的表单:一个用于浏览文件,另一个用于对文件部分执行整个读写操作,当然是以相同的逐行格式
有人知道怎么做吗?我已经搜索过了,但还没有真正找到具体的东西,对于文件读/写来说也是非常新的
编辑
好的,这是我到目前为止所做的工作:
private void button1_Click(object sender, EventArgs e)
{
int counter = 0;
string line;
string s1 = "Feature name";
string s2 = "Tokens total";
// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader("d:\\license.txt");
using (System.IO.StreamWriter file2 = new System.IO.StreamWriter(@"D:\test.txt"))
while ((line = file.ReadLine()) != null)
{
if (line.Contains(s1) || line.Contains(s2))
{
file2.WriteLine(line);
counter++;
}
}
file.Close();
这是通过一个按钮完成的。不过,我想要的是能够搜索我想要的文件,然后使用另一个按钮来完成您可以使用的所有写入过程,以及读/写文件
要提取文本的特定部分,您可以使用,它将返回,然后您可以在Match.Groups
// Search name
Match mu = Regex.Match(line, @"Feature name: (\d+)");
// Get name
if (mu.Groups.Count == 1) Console.Writeline(mu.Groups[0].Value);
回答编辑问题: 您可以将读取的数据存储在form类的property或private字段中。最好使用字符串或StringBuilder。单击第二个按钮时,检查是否有存储的数据,并将其写入输出文件
private StringBuilder data = new StringBuilder();
private void button2_Click(object sender, EventArgs e)
{
if(data.Length > 0)
{
using(System.IO.StreamWriter file2 = new System.IO.StreamWriter(@"D:\test.txt"))
{
file2.Write(data.ToString());
}
}
}
private void button1_Click(object sender, EventArgs e)
{
// Clear the previous store data
data.Clear();
// ...
System.IO.StreamReader file = new System.IO.StreamReader("d:\\license.txt");
while ((line = file.ReadLine()) != null)
{
if (line.Contains(s1) || line.Contains(s2))
{
sb.AppendLine(line);
counter++;
}
}
file.Close();
}
请添加using for System.IO,并用using块包围您的StreamReader和StreamWriter,这样您的代码将更具可读性,并且您不会忘记释放使用过的资源。
我已经搜索过,但还没有真正找到具体的内容
我怀疑在c#中查找和搜索StreamReader和StreamWriter类。剩下的部分是逐行读取和一些字符串操作来提取所需内容。使用文件.Readlines()
然后像下面这样搜索所需的单词字符串.StartsWith()
,然后将字符串添加到数组并将数组放入文本区域。谢谢大家!谢谢你的回答。设法从中获得了一些好处!