我有一个包含7个列的文本文件。列总是相同的有时可以是7或更多。我的文本文件为tab delimited
。
所以我想知道如何设置搜索文本文件中可用的所有列并删除整行。
目前,我正在为each columns search and delete the file
撰写单一功能。我需要一个通用的功能来搜索整个文本文件并附加行
代码:
public void stack()
{
string old;
string iniPath = Application.StartupPath + "\\list.ini";
bool isDeleteSectionFound = false;
List<string> deleteCodeList = new List<string>();
using (StreamReader sr = File.OpenText(iniPath))
{
while ((old = sr.ReadLine()) != null)
{
if (old.Trim().Equals("[DELETE]"))
{
isDeleteSectionFound = true;
}
if (isDeleteSectionFound && !old.Trim().Equals("[DELETE]"))
{
deleteCodeList.Add(old.Trim());
}
}
}
StringBuilder sb = new StringBuilder();
using (var reader = new StreamReader(File.OpenRead(textBox1.Text)))
{
//;
List<string> data = new List<string>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split('\t');
if (values.Contains(deleteCodeList))// getting that error
continue;
//
data.Add(string.Join("\t", values));
}
}
File.WriteAllText(textBox1.Text, sb.ToString());
}
答案 0 :(得分:0)
这是一个简单的应用程序控制台,它读取文件分割行并搜索字符串。 如果找到一个字符串,则继续将该行添加到数组中。
using System.IO;
using System.Linq;
static void Main(string[] args)
{
var reader = new StreamReader(File.OpenRead(@"C:\test.ini"));
List<string> data = new List<string>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split('\t');
if (values.Contains("REMOVE"))
continue;
//
data.Add(string.Join("\t",values));
}
//Inside data you have all the lines without the removed. You can rewrite
//to other file
}
打开并阅读该文件的代码段取自此question
测试文件:
223431 121232112 13122 TEST
322323 1232332 1233123 2311231 123121
232323 REMOVE 123121 12123211 121212