Sei sulla pagina 1di 5

Filing Example

============================================
#include<iostream.h>
#include<stdlib.h>
#include<fstream.h>

class textFile{
public:
//Blank Constructor
textFile(){};

//Merge Function
void Merge(int argc,char *argv[]){
if(argc!=4){
cout<<"Usage:Merge file1 file2 file3";
exit(0);
}
ifstream f1(argv[1]);
ifstream f2(argv[2]);
ofstream f3(argv[3]);

char ch;
bool flag1=true;
bool flag2=true;
while (true ){
if (f1.read((char*)&ch,sizeof(ch)))
f3.write((char*)&ch,sizeof(ch));
else
flag1=false;
if (f2.read((char*)&ch,sizeof(ch)))
f3.write((char*)&ch,sizeof(ch));
else
flag2=false;

if ((flag1==false) && ( flag2==false))


break;
}
f1.close();
f2.close();
f3.close();
}

void Copy(int argc,char *argv[]){


if(argc!=3){
cout<<"Usage:Copy file1 file2";
exit(0);
}
ifstream f1(argv[1]);
ofstream f2(argv[2]);

char ch;
while (f1.read((char*)&ch,sizeof(ch)))
f2.write((char*)&ch,sizeof(ch));

f1.close();
f2.close();
}

void reverseBuffer(int argc,char *argv[]){


if ( argc!=2){
cout<< " Usage : Reverse File \n";
exit(0);
}

ifstream f1(argv[1]);

f1.seekg(ios::end);
long len=f1.tellg();
f1.seekg(0,ios::beg);
char *a= new char[len+1];
char ch;
int i=0;
while (f1.read((char*)&ch,sizeof(ch)))
a[i++]=ch;
cout<<i;
for ( int j=i;j>=0;j--)
cout<<a[j];
f1.close();
}

void reverseSeek(int argc,char *argv[]){


if ( argc!=2){
cout<< " Usage : Reverse File \n";
exit(0);
}

ifstream f1(argv[1]);
f1.seekg(ios::end);
int len= f1.tellg();
char *a= new char[len+1];
char ch;
for (int i=1;i>=0;i--)
f1.seekg(-i,ios::end);
while (f1.read((char*)&ch,sizeof(ch)))
a[i++]=ch;
cout<<i;
for ( int j=i;j>=0;j--)
cout<<a[j];
f1.close();
}

void textfileRead(int argc,char *argv[]){


if ( argc!=2){
cout<< " Usage : TextFileRead Filename \n";
exit(0);
}

ifstream file(argv[1]);
char ch;
while (file.read((char*)&ch,sizeof(ch)))
cout<<ch;
file.close();
}

void Concatinate(int argc,char *argv[]){


if(argc!=4){
cout<<"Usage:Concatinate file1 file2 file3";
exit(0);
}
ifstream f1(argv[1]);
ifstream f2(argv[2]);
ofstream f3(argv[3]);

char ch;
while (f1.read((char*)&ch,sizeof(ch)))
f3.write((char*)&ch,sizeof(ch));
while (f2.read((char*)&ch,sizeof(ch)))
f3.write((char*)&ch,sizeof(ch));

f1.close();
f2.close();
f3.close();
}

void Characters(int argc,char *argv[]){


if ( argc!=2){
cout<< " Usage : Characters Filename \n";
exit(0);
}

ifstream file(argv[1]);
char ch;
int count=0;
while (file.read((char*)&ch,sizeof(ch))){
count++;
cout<<ch;
}
file.close();
}

};

void main(int argc,char *argv[]){


int ch;
textFile txt;
cout<<"1-Merge\n";
cout<<"2-Copy\n";
cout<<"3-Reverse Buffer\n";
cout<<"4-Reverse Seek\n";
cout<<"5-Text File Read\n";
cout<<"6-Concatinate\n";
cout<<"7-Number of Characters";
cout<<"\n\nEnter ur choice: ";
cin>>ch;
if(ch==1)
txt.Merge(argc,argv);
else if(ch==2)
txt.Copy(argc,argv);
else if(ch==3)
txt.reverseBuffer(argc,argv);
else if(ch==4)
txt.reverseSeek(argc,argv);
else if(ch==5)
txt.textfileRead(argc,argv);
else if(ch==6)
txt.Concatinate(argc,argv);
else if(ch==7)
txt.Characters(argc,argv);
}

http://www.ravianeducation.blogspot.com
FARHAN: 03008855006

Potrebbero piacerti anche