C#文本阅读器和编写器

时间:2011-02-22 07:54:05

标签: c# programming-languages

我这里有一个文本文件,文本按列排列。我需要做的是读取文本文件,格式化它,以便每列开始一个新行。在读取并格式化文件后,需要将其写入新文件....我将如何进行此操作。

需要输入的文件如下所示:

运营商ID = BTA020

姓名= ASIA CHAMBEGA
有效的个人资料= User_Disabled
启用状态=已禁用
重新启用日期= 31/12/36 00:00:00
批准状态=已批准
最后更改= 21/07/10 07:34:30
最后登录= 13/06/08 14:09:37
计算的pwd = BD
一次性密码=否
已分配单位=无

运营商ID = BTAC002

姓名= A KALATA(NBC)
有效的个人资料= User_Disabled
启用状态=已禁用
重新启用日期= 31/12/36 00:00:00
批准状态=已批准
最后更改= 31/05/10 14:04:41
最后登录=不适用 计算的pwd = B9
一次性密码=否
已分配单位=无

输出fie应如下所示:

操作员ID BTA020,名称ASIA CHAMBEGA,活动配置文件User_Disabled,启用状态已禁用,重新启用日期31/12 / 操作员ID BTAC002,名称为Kalata(NBC),活动配置文件User_Disabled,启用状态已禁用

//等等149条记录

如何让输出看起来像这样?

由于 特伦

4 个答案:

答案 0 :(得分:1)

这样的事情应该这样做:

using (TextReader textReader = ...)
using (TextWriter textWriter = ...)
{
    string line;

    while ((line = textReader.ReadLine()) != null)
    {
        // split into columns here
        string[] columns = ...;

        foreach (string column in columns)
        {
            textWriter.WriteLine(column);
        }
    }
}

请注意,您可能会使用LINQ稍微加强此代码。

答案 1 :(得分:1)

您需要一个简单的转换器。只需阅读完整的文件(在你的情况下它不大,所以它可以读入memmory)。当'='与''和'\ n'与','重播时。 Transfromation已经完成!之后,生成的文本应写入新文件。多数民众赞成!

代码应该是这样的:

        string t = File.ReadAllText(path);

        t = t.Replace('=', ' ');
        t = t.Replace("\r\n\r\n", ",");
        t = t.Replace("\r\n", ",");
        t = t.Replace("\n", ",");
        t = t.Replace("  ", " ");

答案 2 :(得分:0)

有关如何撰写和阅读的基本信息,请参阅文章

http://www.c-sharpcorner.com/UploadFile/ggaganesh/CSAndTypes11092005011259AM/CSAndTypes.aspx

答案 3 :(得分:0)

这个怎么样:

string data = File.ReadAllText( path );
string[] lines = data.Split('\t'); //I assume that "columns" mean tab seperated
File.WriteAllLines( path2, lines );

或者你可以选择一种线性变体,但我更喜欢第一种可读性:

File.WriteAllLines( destinationPath, File.ReadAllText( sourcePath ).Split('\t') );