在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → C++控制台地震勘探观测系统数据文件(>5Gb)分割工具

C++控制台地震勘探观测系统数据文件(>5Gb)分割工具

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:0.01M
  • 下载次数:21
  • 浏览次数:232
  • 发布时间:2016-02-26
  • 实例类别:常规C/C++编程
  • 发 布 人:trudger2011
  • 文件格式:.cpp
  • 所需积分: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;
}


实例下载地址

C++控制台地震勘探观测系统数据文件(>5Gb)分割工具

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警