在.xls(Excel檔)裡,有一格一格的
在.csv裡用\t和\n可以讓它一格一格的,x軸和y軸都可以定位
同理
在txt檔和.csv檔骨子裡是一樣的,不一樣的是打開的工具
而今天,我們用MFC來開
如何coding來開這個東西呢??(至少要能讀.txt檔吧?)
先貼兩串code上來看
CString CTxtFile::GetLine(UINT Num)
{
CString strBuf1;
CString strBuf2;
strBuf1.Format("%s", pbuf);
UINT lBegin = 0, lLength = 0;
for (UINT i = 0; i < Num; ++i)
{
lLength = strBuf1.Right(strBuf1.GetLength() - lBegin).Find("\n");
if (lLength == -1)
return "超過檔案大小";
strBuf2.Format("%s", strBuf1.Mid(lBegin, lLength));
strBuf2.TrimRight();
lBegin = lBegin + lLength + 1;
}
if (strBuf2.IsEmpty())
strBuf2.Format("(內容空白)");
return strBuf2;
}
CString CTxtFile::GetCell(UINT Word, UINT Line)
{
CString strBuf1;
CString strBuf2;
strBuf1 = GetLine(Line);
if (!strBuf1.IsEmpty())
{
UINT wBegin = 0, wLength = 0;
for (UINT i = 0; i < Word; ++i)
{
wLength = strBuf1.Right(strBuf1.GetLength() - wBegin).Find("\t");
strBuf2.Format("%s", strBuf1.Mid(wBegin, wLength));
strBuf2.TrimRight();
wBegin += wLength + 1;
}
}
if (strBuf2.IsEmpty())
strBuf2.Format("(內容空白)");
return strBuf2;
}
字串 > 子字串 > 小字串
GetLine(),不是一般使用介面,設成private,也可以設計成public
是用來得到一行,也就是用\n切斷文章,成為一串串的子字串。
CString::TrimRight()的目的是去掉右邊的空白、\n、\t(在這裡主要去掉\t和空格)
(相對的也有左邊版本)
GetCell()是一般使用的介面,設成public
填入座標,以\t介定x方向的格式,以\n介定y方向的格子。
就可以任意的處理txt檔,取出任意的小字串
小字串可以使用
CString::Left()、CString::Mid()、CString::Right()
做細部的處理。
沒有留言:
張貼留言
(什麼是留言欄訊息?)