基本信息
源码名称:C++控制台地震勘探观测系统数据文件(>5Gb)分割工具
源码大小:0.01M
文件格式:.cpp
开发语言:C/C++
更新时间:2016-02-26
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
本实例采用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; }