//http://courses.cs.vt.edu/cs2604/fall02/binio.html //Binary files int FileIO::dataOpenFile() { std::string fileName;// = getFileName(); std::string input; bool newFile=false; while (true){ fileName = getFileName(); system("CLS"); cout<<"I will now try to open the file \""<<fileName<<"\"."<<endl; cout<<"Is this right? Enter Y to continue, Q to quit, and anything else to try again."<<endl; cout<<"If the file does not exist, please press C instead."<<endl; cin>>input; if (input=="Y"||input=="y"){ break; } if (input=="C"||input=="c"){ newFile=true; break; } if (input=="Q"||input=="q"){ return 0; } } if (newFile){ myfile.open(filePath.c_str(), ios::out | ios::binary);//creates the file myfile.close(); myfile.open(filePath.c_str(), ios::out | ios::in | ios::binary);//Actually leaves it open. isBinary=true; fileLength=0; fileConstructor(); return 1; } myfile.open(filePath.c_str(), ios::out | ios::in | ios::binary); isBinary=true; myfile.seekg (0, myfile.end); fileLength = myfile.tellg();//Finds the length of the file. myfile.seekg (0, myfile.beg); fileConstructor(); return 1; }
int FileIO::textOpenFile() { std::string fileName; std::string input; bool newFile=false; while (true){ fileName = getFileName(); system("CLS"); cout<<"I will now try to open the file \""<<fileName<<"\"."<<endl; cout<<"Is this right? Enter Y to continue, Q to quit, and anything else to try again."<<endl; cout<<"If the file does not exist, please press C instead."<<endl; cin>>input; if (input=="Y"||input=="y"){ break; } if (input=="C"||input=="c"){ newFile=true; break; } if (input=="Q"||input=="q"){ return 0; } } //fileName = getFileName(); if (newFile){ myfile.open(filePath.c_str(), ios::out);//creates the file myfile.close(); myfile.open(filePath.c_str(), ios::out | ios::in); isBinary=false; fileLength=0; fileConstructor(); return 1; } myfile.open(filePath.c_str(), ios::out | ios::in); if (myfile.is_open()){ isBinary=false; fileConstructor(); return 1; } }
//Takes a string, and opens the file at that location. int FileIO::dataOpenFile(std::string filePath, bool isFirstTime) { if (isFirstTime){ myfile.open(filePath.c_str(), std::ios::out);//creates the file myfile.close(); myfile.open(filePath.c_str(), std::ios::out | std::ios::in); isBinary=true; fileLength=0; fileConstructor(); return 1; } myfile.open(filePath.c_str(), std::ios::out | std::ios::in); if (myfile.is_open()){ isBinary=true; fileConstructor(); return 1; } return 0;//file is not open }
PUBLIC EjsFile *ejsCreateFile(Ejs *ejs, cchar *path) { EjsFile *fp; EjsObj *arg; assert(path && *path); fp = ejsCreateObj(ejs, ESV(File), 0); if (fp == 0) { return 0; } arg = (EjsObj*) ejsCreateStringFromAsc(ejs, path); fileConstructor(ejs, fp, 1, (EjsObj**) &arg); return fp; }