六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

visual c++對大型數據文件的讀取

[摘要]筆者前不久曾遇到一個問題,解決之后的經驗愿與大家分享。問題是這樣的,有一批數據文件,數據格式如下:日期,開盤,最高,最低,收盤,成交量,成交金額1996年5月13日,636.96,636.96,636.96,636.96,0,0,1996年5月14日,641.61,641.61,641.61,64...
筆者前不久曾遇到一個問題,解決之后的經驗愿與大家分享。問題是這樣的,有一批數據文件,數據格式如下:

日期,開盤,最高,最低,收盤,成交量,成交金額

1996年5月13日,636.96,636.96,636.96,636.96,0,0,

1996年5月14日,641.61,641.61,641.61,641.61,0,0,

1996年5月15日,637.83,637.83,637.83,637.83,0,0,

.............

  要求將數據填寫到四張表中,以便作相應的分析。筆者開始用CFile和CStdioFile類的方法讀取件。Cfile類提供了基于二進制流的文件操作,功能類似于C語言中的fread()和fwrite()函數。CStdioFile提供了基于字符串流的文件操作,功能類似于C語言中fgets()和fputs()函數。但是筆者發現,使用這兩個類進行文件操作時,對于一次文件讀寫的數據量的大小必須限制在65535字節以內。究其原因是在VC中訪問大于65535字節的緩沖區需要Huge型指針,而在CFile和CStdioFile類中,使用的是Far型的指針。由于Far型指針不具有跨段尋址的能力,因此限制了一次文件讀寫的長度小于65535字節。如果傳遞給CFile和CStdioFile兩個類的成員函數的數據緩沖區的大小大于65535字節的時候,VC就會產生ASSERT錯誤。

  針對文件格式特點,筆者改用CArchive類進行讀取如下:

CFile SourceFile;//數據文件

CString SourceData;//定義一臨時變量保存一條記錄

SourceFile.Open(.......);

CArchive ar(&SourceFile,CArchive::load);

while(NULL!=ar.ReadString(SourceData))//循環讀取文件,直到文件結束

{

if(SourceData=="日期,開盤,最高,最低,收盤,成交量,成交金額" SourceData=="")

continue;//跳過文件頭部的提示信息

  //分析并填充//

}

  在進行分析時,筆者采取了逐步分析并修改的辦法,過程如下:

int nYear;

CString Year= SourceData.Left(SourceData.Find("年"));//截取年前面的字符串

nYear=atoi(Year);//類型轉換

SourceData=SourceData.Righ(SourceData.GetLength()-SourceData.Find("年")-2);//將年以及前面的字符刪除。

  重復上面分析過程,直到記錄末尾。

  通過上述方法,筆者成功地將文件讀取并分析填充。


主站蜘蛛池模板: 天天做天天欢天天爽 | 新男人天堂 | 日韩视频精品在线 | 青青热久免费精品视频网站 | 探花系列| 日本一区二区三区精品国产 | 日韩欧美成人乱码一在线 | 亚洲国产另类久久久精品小说 | 屁屁影院免费观看入口 | 日本美女高清在线观看免费 | 日韩欧美精品在线视频 | 伊人色在线观看 | 越南一级淫片高清视频 | 欧美一级乱理片免费观看 | 日韩毛片免费看 | 欧美亚洲国产日韩一区二区三区 | 亚洲国产精品久久久久666 | 日本xxxxxx片免费播放18 | 亚洲精品天堂在线观看 | 天天做夜夜操 | 亚洲第一视频网站 | 夜夜爽天天狠狠九月婷婷 | 亚洲丁香| 午夜小视频男女在线观看 | 欧美一级黄色片子 | 午夜影院毛片 | 亚洲欧美综合一区 | 欧美洲大黑香蕉在线视频 | 一区二区免费视频 | 午夜黄网 | 四虎影院精品在线观看 | 色噜噜狠狠色综合中文字幕 | 亚洲国产精品久久 | 色综合久久88色综合天天提莫 | 四虎影视在线永久免费观看 | 四虎免费影院ww4164h | 亚洲成人高清 | 中文字幕在线视频免费观看 | 青青国产成人精品视频 | 人人揉揉揉人人捏人人看 | 永久视频免费 |