我这里有一个文本文件,文本按列排列。我需要做的是读取文本文件,格式化它,以便每列开始一个新行。在读取并格式化文件后,需要将其写入新文件....我将如何进行此操作。
需要输入的文件如下所示:
运营商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条记录
如何让输出看起来像这样?
由于 特伦
答案 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') );