Re: [問題] 如何修改.txt檔?
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
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章
10
25