实例介绍
【实例简介】
本实例采用C 语言,控制台模式,实现了地震勘探中观测系统文件的读取、数据查错、文件分割写入磁盘,支持大于5Gb的文件。
【实例截图】【核心代码】
/***************************************************** * 2015.12.16 * Hu SH * Txt file edit tool: * * -read txt file; * -find invalid numbers; * -display number of invalid numbers; * -write txt file without invalid numbers; * * 2016.1.15 * Hu SH * modified to divide a 5.7GB txt file to 20 files. *****************************************************/ #include <iostream> #include <fstream> #include <cstdio> #include <iomanip> //#include <string> //#include <stdlib.h> using namespace std; //const char * fn_test="a.txt"; const char * fn="ks3d_final_fbt.TXT"; const char * fn1="1.txt"; const char * fn2="2.txt"; const char * fn3="3.txt"; const char * fn4="4.txt"; const char * fn5="5.txt"; const char * fn6="6.txt"; const char * fn7="7.txt"; const char * fn8="8.txt"; const char * fn9="9.txt"; const char * fn10="10.txt"; const char * fn11="11.txt"; const char * fn12="12.txt"; const char * fn13="13.txt"; const char * fn14="14.txt"; const char * fn15="15.txt"; const char * fn16="16.txt"; const char * fn17="17.txt"; const char * fn18="18.txt"; double buf[3]; //double buf2[10000000][3]; double buf1; //string read; int main() { //cout<<"Memory checking..."<<endl<<endl; //getchar(); ifstream filein; ofstream fileout1; ofstream fileout2; ofstream fileout3; ofstream fileout4; ofstream fileout5; ofstream fileout6; ofstream fileout7; ofstream fileout8; ofstream fileout9; ofstream fileout10; ofstream fileout11; ofstream fileout12; ofstream fileout13; ofstream fileout14; ofstream fileout15; ofstream fileout16; ofstream fileout17; ofstream fileout18; filein.open(fn, ios::in); fileout1.open(fn1, ios::out); fileout2.open(fn2, ios::out); fileout3.open(fn3, ios::out); fileout4.open(fn4, ios::out); fileout5.open(fn5, ios::out); fileout6.open(fn6, ios::out); fileout7.open(fn7, ios::out); fileout8.open(fn8, ios::out); fileout9.open(fn9, ios::out); fileout10.open(fn10, ios::out); fileout11.open(fn11, ios::out); fileout12.open(fn12, ios::out); fileout13.open(fn13, ios::out); fileout14.open(fn14, ios::out); fileout15.open(fn15, ios::out); fileout16.open(fn16, ios::out); fileout17.open(fn17, ios::out); fileout18.open(fn18, ios::out); //cout<<"Need memory of "<<sizeof(buf2)/1024.0/1024.0<<" MB"<<endl<<endl; //getchar(); //float buffer1[1801][1801]; //char buf[250][10*4]; //cout<<"Need memory of "<<sizeof(buf)/1024.0/1024.0<<" MB"<<endl<<endl; //float buffer2[1801]; int i=0; int j=0; int k=0; //cout<<"Reading begin..."<<endl<<endl; //filein.seekg(151,ios::cur); while(!filein.eof()) // for (i=0;i<100;i ) { //cout<<filein.tellg()<<endl; filein>>buf[0]; //cout<<buf[0]<<" "; //cout<<filein.tellg()<<endl; filein>>buf[1]; //cout<<buf[1]<<" "; //cout<<filein.tellg()<<endl; //filein.seekg(1, ios::cur); //cout<<filein.tellg()<<endl; filein>>buf1; filein>>buf[2]; //cout<<buf[2]<<endl; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; filein>>buf1; //filein.seekg(11, ios::cur); //writing if(buf[0]<=50000) { fileout1<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout1<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout1<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout1<<endl; } else if (buf[0]<=90000) { fileout2<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout2<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout2<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout2<<endl; } else if (buf[0]<=130000) { fileout3<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout3<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout3<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout3<<endl; } else if (buf[0]<=170000) { fileout3<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout3<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout3<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout3<<endl; } else if (buf[0]<=210000) { fileout4<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout4<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout4<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout4<<endl; } else if (buf[0]<=250000) { fileout5<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout5<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout5<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout5<<endl; } else if (buf[0]<=290000) { fileout6<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout6<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout6<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout6<<endl; } else if (buf[0]<=330000) { fileout7<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout7<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout7<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout7<<endl; } else if (buf[0]<=370000) { fileout8<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout8<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout8<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout8<<endl; } else if (buf[0]<=410000) { fileout9<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout9<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout9<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout9<<endl; } else if (buf[0]<=450000) { fileout10<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout10<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout10<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout10<<endl; } else if (buf[0]<=490000) { fileout11<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout11<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout11<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout11<<endl; } else if (buf[0]<=530000) { fileout12<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout12<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout12<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout12<<endl; } else if (buf[0]<=570000) { fileout13<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout13<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout13<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout13<<endl; } else if (buf[0]<=610000) { fileout14<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout14<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout14<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout14<<endl; } else if (buf[0]<=650000) { fileout15<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout15<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout15<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout15<<endl; } else if (buf[0]<=690000) { fileout16<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout16<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout16<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout16<<endl; } else if (buf[0]<=730000) { fileout17<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout17<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout17<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout17<<endl; } else if (buf[0]<=770000) { fileout18<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[0]; fileout18<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(0)<<buf[1]; fileout18<<" "<<setiosflags(ios::fixed)<<setw(7)<<setiosflags(ios::right)<<setprecision(2)<<buf[2]; fileout18<<endl; } if(i%10000==1) { cout<<i-1<<" "<<buf[0]<<" "<<buf[1]<<" "<<buf[2]<<endl; } i ; //system("pause"); } //for (i=0;i<505126;i ){ //for (j=0;j<3;j ){ //filein>>buf[i][j]; //} //} //cout<<"Reading completed! Now searching for invalid numbers..."<<endl<<endl; //getchar(); // i=0; // j=0; // // // for (i=0;i<505126;i ){ // if(buf[i][2]<=2000.0 || buf[i][2]>=4500.0){ // cout<<"Found invalid number "<<setiosflags(ios::fixed)<<setprecision(3)<<buf[i][2]<<" in row "<<i<<endl; // k ; // } // else{ // for (j=0;j<3;j ){ // fileout<<" "<<setiosflags(ios::fixed)<<setprecision(3)<<buf[i][j]<<" "; // } // } // fileout<<endl; // } // cout<<endl; // cout<<"Searching and writing completed! Found "<<k<<" invalid numbers!"<<endl<<endl; filein.close(); fileout1.close(); fileout2.close(); fileout3.close(); fileout4.close(); fileout5.close(); fileout6.close(); fileout7.close(); fileout8.close(); fileout9.close(); fileout10.close(); fileout11.close(); fileout12.close(); fileout13.close(); fileout14.close(); fileout15.close(); fileout16.close(); fileout17.close(); fileout18.close(); //getchar(); return 0; }
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论