
如圖,我用CStdioFile file , readstring 對文本進行讀資料,前三行能讀出來,但從第四行的開始就讀不出資料,怎么把這個前面的空格去掉???
uj5u.com熱心網友回復:
要上你的代碼呀 去空格可以用cstring的trim函式,如果每行都是固定一個空格開頭,那就直接從第二個字符開始讀就是了uj5u.com熱心網友回復:
直接用改C語言的檔案讀寫原始函式,CStdioFile這個類不是對所有格式的文本都可以按行讀取,封裝效果并不是很好。
uj5u.com熱心網友回復:
http://bbs.csdn.net/topics/360055953uj5u.com熱心網友回復:
你的CStdioFile讀寫檔案的代碼是怎么寫的?uj5u.com熱心網友回復:
謝謝您的回復,我的代碼如下,目的是獲取第二列的資料(從第三行開始),然后用都好連接起來!如果要從第二個字符開始讀,該怎么讀啊?求教~~~
CStdioFile file;
file.Open(sCompleteTmp, CStdioFile::modeRead);
int k = 0;
for (k = 0; file.ReadString(FileContent); k++)
{
if (k >= 2)
{
a[k] = FileContent.Left(FileContent.Find(','));
//FileContent = FileContent.Mid(FileContent.Find(',') + 1);
b[k] = FileContent.Right(FileContent.Find(','));
//MessageBox(b[k]);
Temp[k - 1] += b[k] + _T(",");
}
}
uj5u.com熱心網友回復:
謝謝您的回復,我的代碼如下,目的是獲取第二列的資料(從第三行開始),然后用逗號連接起來!
CStdioFile file;
file.Open(sCompleteTmp, CStdioFile::modeRead);
int k = 0;
//FileLine = 0;
for (k = 0; file.ReadString(FileContent); k++)
{
if (k >= 2)
{
a[k] = FileContent.Left(FileContent.Find(','));
b[k] = FileContent.Right(FileContent.Find(','));
Temp[k - 1] += b[k] + _T(",");
}
}
uj5u.com熱心網友回復:
首先你確定每行都是\n換行嗎 其次從哪第3行開始,開頭都是空格嗎 還是tab?
uj5u.com熱心網友回復:
你除錯一下看看,應該是可以讀進來的,去掉空格trim一下即可uj5u.com熱心網友回復:
檔案每次讀取直接讀取一整行 然后把讀取到的整行.LeftTrim(); RightTrim(); 直接Trim()有可能去不掉空格uj5u.com熱心網友回復:
檔案每次讀取直接讀取一整行 然后把讀取到的整行.LeftTrim(); RightTrim(); 直接Trim()有可能去不掉空格
您好,去空格我知道,但是現在的問題是從第四行開始我讀取不到資料,不知道為什么?
uj5u.com熱心網友回復:
你除錯一下看看,應該是可以讀進來的,去掉空格trim一下即可
我除錯了,一步步除錯,用messagebox輸出提示,就是只能讀前三行的資料,第四行開始就讀不出來,是不是CStdioFile 的readstring碰到開頭是空格的資料就不能讀取?
uj5u.com熱心網友回復:
要上你的代碼呀 去空格可以用cstring的trim函式,如果每行都是固定一個空格開頭,那就直接從第二個字符開始讀就是了
謝謝您的回復,我的代碼如下,目的是獲取第二列的資料(從第三行開始),然后用都好連接起來!如果要從第二個字符開始讀,該怎么讀啊?求教~~~CStdioFile file;
file.Open(sCompleteTmp, CStdioFile::modeRead);
int k = 0;
for (k = 0; file.ReadString(FileContent); k++)
{
if (k >= 2)
{
a[k] = FileContent.Left(FileContent.Find(','));
//FileContent = FileContent.Mid(FileContent.Find(',') + 1);
b[k] = FileContent.Right(FileContent.Find(','));
//MessageBox(b[k]);
Temp[k - 1] += b[k] + _T(",");
}
}
首先你確定每行都是\n換行嗎 其次從哪第3行開始,開頭都是空格嗎 還是tab?
是換行,普通換行,第三行是我提問中截圖的第三行,即“”000,0568“”,從第四行開始開頭是空格,不是tab!問題就是從第四行開始我就讀不出資料了,我除錯了,前三行得資料都能讀出
uj5u.com熱心網友回復:
ReadString(FileContent);//忽略第1行
ReadString(FileContent);//忽略第2行
ReadString(FileContent);//忽略第3行
ReadString(FileContent);//debug里看FileContent是什么內容
CString sFirst,sSecond;
AfxExtractSubString(FileContent, sFirst, 0, ' '); //單引號里是空格,得到第一個數
AfxExtractSubString(FileContent, sSecond, 1, ','); //得到第2個數
uj5u.com熱心網友回復:
CString CUtilityEx::ReadFile(CString strFileName){
CStdioFile csfFile;
CString strFileString = "";
TRY
{
if(csfFile.Open(strFileName,CFile::modeRead|CFile::shareDenyNone))
{
CString strTemp;
while( csfFile.ReadString(strTemp) )
{
strFileString += strTemp + "\r\n";
}
csfFile.Close();
}
}
CATCH (CMemoryException, e)
{
strFileString = "";
}
END_CATCH
return strFileString;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/119471.html
標籤:界面
