作者DeepSix (Free Myself?!)
看板C_Sharp
标题Re: [问题] 如何修改.txt档?
时间Sun Dec 4 00:06:52 2011
telnet 好难排版 贴到vs 在 ctrlKD参考看看吧
OpenFileDialog ofd = new OpenFileDialog()
if (ofd.ShowDialog() == DialogResult.OK)
{
StreamReader SReader = new StreamReader(ofd.FileName, System.Text.Encoding.Default);
string input = null;
List<string> oData = new List<string>();
int columnCount = 0;
int rowCount = 0;
StreamWriter SWriter = new StreamWriter(@"C:\test.txt");
while ((input = SReader.ReadLine()) != null)//一行一行读进去。
{
if(!input.Contains("<BODY>")) //不是data直接写档
SWriter.WriteLine(input); // 写入文字
if (input.Contains("<ROW_COUNT>")) //抓列数
{
input = input.Replace("<ROW_COUNT>","").Replace( "</ROW_COUNT>","").Trim();
rowCount = int.Parse(input);
}
if (input.Contains("<COLUMN_COUNT>")) //抓行数
{
input = input.Replace("<COLUMN_COUNT>","").Replace("</COLUMN_COUNT>","").Trim();
columnCount = int.Parse(input);
}
if (input.Contains("<BODY>"))
{
input = input.Replace("<BODY>","").Replace( "</BODY></DATA>","").Trim();
for (int i = 0; i < rowCount; i++)
{
SWriter.WriteLine(input.Substring(columnCount * i, columnCount));
}
SWriter.WriteLine("</BODY></DATA>");
}
}
SWriter.Close(); // 关闭串流
SReader.Close();
}
※ 引述《don750421 (1+1≠2)》之铭言:
: 最近朋友手上有个麻烦的东西,看似完整但好像也不完全是这样
: 它会有个.txt档,里面写的语法很是xml,以下是我撷取一部分的文字
: http://www.mediafire.com/?fb66c75lnblyzph
: 从.txt档的内容中可以看出实际上的格式
: <ROW_COUNT> 7 </ROW_COUNT> <==7行
: <COLUMN_COUNT> 10 </COLUMN_COUNT> <==10列
: 但是,从档案内看到的<BODY>内容是一整串的
: 如今,如果我想要把<BODY>的内容整理後再存成另一个档案
: 希望将原先的<BODY>内容整理成以下这样,但是上面的那些Label仍然不变
: <BODY>
: ADSVFURHNV
: OPWGHPONEO
: PRHGTPONGO
: WTHGOPWTNV
: WOPUGHPOQM
: FVHNQEUIRV
: REJGIEHRJO
: </BODY></DATA>
: 请问一下,我该如何写呢?
: 我的方向有二,
: 一个是把.txt档内的资料读出来放入array或阵列中,再依照COLUMN_COUNT去放
: 每行的字元数
: 还是说可以再读的时候就将档案内的<BODY>做断行的动作,而不需要再读出来呢?
: 麻烦各位先进指教,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.205.26.241