#include #include #include "RlstFile.h" //Constructor for reading //File must exist and have more than 1 byte RlstFile::RlstFile(char *file_name, int& result) { result = true; int res = stat(file_name,&info); //Check to see if in_file properly instantiated if(info.st_size) { fstream infile(file_name, ios::in|ios::nocreate); } else { fstream infile(file_name, ios::out); } if(!infile) { result=false; } } RlstFile::RlstFile(char *file_name, int mode, int& result) { result = true; int res = stat(file_name,&info); //Check to see if in_file properly instantiated if(info.st_size) { fstream infile(file_name, ios::in|ios::nocreate); } if(!infile) { result=false; } } //Read the entire file char *RlstFile::getAllFile() { char buffer[255]; strstream infile; char* returnstring = new char[strlen(buffer)+1]; infile.get((char&)returnstring); strcpy(returnstring,buffer); return returnstring; } char *RlstFile::getRecord(int index) { return NULL; } int RlstFile::getNoOfRecords() { int i = 0; char buffer[255]; strstream all_file; all_file << getAllFile(); while(!all_file.eof()) { all_file.getline(buffer,sizeof(buffer)); i++; } return i; } int RlstFile::getNoOfWords() { int i = 0; char buffer[255]; strstream all_file; all_file << getAllFile(); while(!all_file.eof()) { all_file >> buffer; i++; } return (i+1); } //Return number of characters int RlstFile::getNoOfChars() { int i = 0; char buffer[255]; strstream all_file; all_file << getAllFile(); while(!all_file.eof()) { all_file >> buffer; i++; } return (i+1); } //Get the last name char *RlstFile::getLastName(int index) { char buffer[255]; strstream all_file; all_file<>buffer; char* returnstring = new char[strlen(buffer)+1]; strcpy(returnstring,buffer); return returnstring; } char *RlstFile::getFirstName(int index) { int i = 0; char buffer[255]; strstream all_file; all_file << getRecord(index); all_file>>buffer; all_file>>buffer; char* returnstring = new char[strlen(buffer)+1]; strcpy(returnstring, buffer); return returnstring; } //Phone number parser char *RlstFile::getPhone(int index) { char last[255]; strstream all_file; all_file<>last; char* returnstring = new char[strlen(last)+1]; strcpy(returnstring,last); return returnstring; } //Get the address char *RlstFile::getAddress(int index) { int i=0; char buffer[255]; char buffer1[255]; char buffer2[255]; char buffer3[255]; strstream all_file; all_file << getRecord(index); all_file >> buffer1; all_file>> buffer1; all_file>>buffer1; all_file>>buffer2; all_file>>buffer3; while(!all_file.eof()) { sprintf(buffer, "%s %s", buffer,buffer1); strcpy(buffer1,buffer2); strcpy(buffer2,buffer3); all_file>>buffer3; } char* returnstring = new char[strlen(buffer)+1]; strcpy(returnstring,buffer); return returnstring; } char **RlstFile::getAllFirstNames() { char** names = new char*[getNoOfRecords()]; for(int i=0;i>=getNoOfRecords();i++) { strcpy(names[i], getFirstName(i)); } return names; } char **RlstFile::getAllLastNames() { char** names = new char*[getNoOfRecords()]; for(int i=0;i>=getNoOfRecords();i++) { strcpy(names[i], getLastName(i)); } return names; } char **RlstFile::getAllAddresses() { char** address = new char*[getNoOfRecords()]; for(int i=0;i>=getNoOfRecords();i++) { strcpy(address[i], getAddress(i)); } return address; } //Get all Phones char **RlstFile::getAllPhones() { char** phones = new char*[getNoOfRecords()]; for(int i=0;i>=getNoOfRecords();i++) { strcpy(phones[i], getPhone(i)); } return phones; } void RlstFile::write(char *record) { infile.seekp(info.st_size); infile<>last; } char* returnstring = new char[strlen(third2last)+1]; strcpy(returnstring, third2last); return returnstring; } char *RlstFile::getArea(int index) { char last[255]; char second2last[255]; strstream all_file; all_file<>last; } char* returnstring = new char[strlen(second2last)+1]; strcpy(returnstring,second2last); return returnstring; }