实例介绍
【实例简介】
本实例采用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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论