我正在尝试使用StreamReader读取pbx文件,编辑内容,并使用c#中的TextReader将内容显示到新文件中。
这是我在c#中的第一个开发任务。
我在大学学习过java,我的新工作使用的是c#。
基本上,我必须从电话系统中读取pbx文件中包含的记录列表。然而,这些记录有一行良好的呼叫记录,后跟一行带有一些不可靠的字符,然后是另一行良好的记录。
我的任务是逐行读取这个文件,然后编写一段代码来忽略带有不可靠字符的行,并将正确的记录输出到我的c:\驱动器上的一个新文件中,我将其命名为output.txt。
我可以编写while循环来删除不可靠的字符,但是我不确定从我的c驱动器上的pbx文件中读取c#代码,然后将编辑后的内容输出到一个名为output.txt的新文件中,该文件也在我的c驱动器上。
我是c#的新手,已经在谷歌上探索了几个小时。只是需要一点指导,我要走了。
发布于 2012-05-12 20:14:51
您没有提到文件编码,所以我在这里坚持使用UTF-8默认值。
一种选择是循环的“常规”方法,它读取、检查和有条件地写入,如下所示:
var inputFilePath = @"C:\temp\input.txt";
var outputFilePath = @"C:\temp\output.txt";
using (var reader = File.OpenText(inputFilePath))
using (var writer = File.CreateText(outputFilePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
var isValidLine = CheckLine(line);
if (isValidLine)
{
writer.WriteLine(line);
}
}
}由于您标记了这个VS2008,我猜这意味着您只能使用.NET 3.5,但在4.0或更高版本中,您可以读写枚举数,然后利用它(在.NET 3.5中,您必须将所有行读取到内存中,进行过滤,然后写入所有行)。
var inputFilePath = @"C:\temp\input.txt";
var outputFilePath = @"C:\temp\output.txt";
var inputLines = File.ReadLines(inputFilePath);
var linesToWrite = inputLines
.Where(line => IsLineValid(line));
File.WriteAllLines(outputFilePath, linesToWrite);https://stackoverflow.com/questions/10563300
复制相似问题