基本信息
源码名称: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;
}