38   TextFile::TextFile() {
    57   TextFile::TextFile(
const QString &filename,
    58                      const char *openmode, 
const char *extension) {
    61     Open(filename, openmode, extension);
    88   TextFile::TextFile(
const QString &filename, 
const char *openmode,
    89                      std::vector<QString> &lines, 
const int &maxLinesToReadWrite,
    90                      const bool skipComments) {
    93     Open(filename, openmode);
    95       GetFile(lines, maxLinesToReadWrite, skipComments);
    98       PutFile(lines, maxLinesToReadWrite);
   125   TextFile::TextFile(
const char *filename, 
const char *openmode,
   126                      std::vector<QString> &lines, 
const int &maxLinesToReadWrite,
   127                      const bool skipComments) {
   128     TextFile(QString(filename), openmode, lines, maxLinesToReadWrite, skipComments);
   156   TextFile::TextFile(
const QString &filename, 
const char *openmode,
   157                      QString *lines, 
const int &maxLinesToReadWrite,
   158                      const bool skipComments) {
   161     Open(filename, openmode);
   162     if(p_openmode == 1) {
   163       GetFile(lines, maxLinesToReadWrite, skipComments);
   166       PutFile(lines, maxLinesToReadWrite);
   194   TextFile::TextFile(
const char *filename, 
const char *openmode,
   195                      QString *lines, 
const int &maxLinesToReadWrite,
   196                      const bool skipComments) {
   197     TextFile(QString(filename), openmode, lines, maxLinesToReadWrite, skipComments);
   202   TextFile::~TextFile() {
   233   void TextFile::Open(
const QString &filename, 
const char *openmode,
   234                       const char *extension) {
   243     if(p_stream.is_open()) {
   244       QString message = 
"TextFile:Open:-> Already opened with this object: ["   245                         + QString(openmode) + 
"]:[" + p_filename + 
"]";
   255     p_filename = filenameTmp.
expanded();
   261     if(chkOpenmode == 
"input")      {
   264     else if(chkOpenmode == 
"output")     {
   267     else if(chkOpenmode == 
"overwrite")  {
   270     else if(chkOpenmode == 
"append")     {
   274       QString message = 
"TextFile::-> Unknown openmode: (input, output, overwrite, append):["   275                        + QString(openmode) + 
"]:[" + p_filename + 
"]";
   280     if(p_openmode == 1) {
   281       p_stream.open(p_filename.toLatin1().data(), fstream::in);
   284     else if(p_openmode == 2) {
   287         QString message = 
"TextFile:Open: -> Output file already exists ["   288                           + QString(openmode) + 
"]:[" + p_filename + 
"]";
   292       p_stream.open(p_filename.toLatin1().data(), fstream::in | fstream::out | fstream::trunc);
   296     else if(p_openmode == 3) {
   297       p_stream.open(p_filename.toLatin1().data(), fstream::in | fstream::out | fstream::trunc);
   300     else if(p_openmode == 4) {
   303         p_stream.open(p_filename.toLatin1().data(), fstream::in | fstream::out | fstream::ate);
   306         p_stream.open(p_filename.toLatin1().data(), fstream::in | fstream::out | fstream::trunc);
   310     if(!p_stream.is_open()) {
   311       QString message = 
"TextFile:Open:-> Unable to open: ["   312                        + QString(openmode) + 
"]:[" + p_filename + 
"]";
   317   bool TextFile::OpenChk(
bool bailIfNotOpen) {
   318     if(p_stream.is_open()) {
   323         QString message = 
"TextFile::-> File not open: [" + p_filename + 
"]";
   324         throw IException(IException::Programmer, message, 
_FILEINFO_);
   333   void TextFile::Rewind() {
   338     p_stream.seekg(0, ios_base::beg);
   342   void TextFile::Close() {
   343     if(p_stream.is_open()) {
   350   void TextFile::GetFile(std::vector<QString> &lines, 
const int &maxLinesToRead,
   351                          const bool skipComments) {
   355     while(GetLine(line, skipComments)) {
   356       if(maxLinesToRead > 0) {
   357         if(lineCount++ >= maxLinesToRead) {
   361       lines.push_back(line);
   366   void TextFile::GetFile(QString *lines, 
const int &maxLinesToRead,
   367                          const bool skipComments) {
   371     while(GetLine(line, skipComments)) {
   372       if(maxLinesToRead > 0) {
   373         if(lineCount > maxLinesToRead) {
   377       else if(lines[lineCount] == 
"\0") {
   380       lines[lineCount] = line;
   386   void TextFile::PutFile(std::vector<QString> &lines, 
const int &maxLinesToWrite) {
   388     for(
int lineCount = 0; lineCount < (int) lines.size(); lineCount++) {
   389       if(maxLinesToWrite > 0) {
   390         if(lineCount > maxLinesToWrite) {
   394       PutLine(lines[lineCount]);
   399   void TextFile::PutFile(
const QString *lines, 
const int &maxLinesToWrite) {
   403       if(maxLinesToWrite > 0) {
   404         if(lineCount > maxLinesToWrite) {
   408       else if(lines[lineCount] == 
"\0") {
   411       PutLine(lines[lineCount]);
   427   bool TextFile::GetLine(QString &line, 
bool skipComments) {
   428     return (p_GetLine(line, skipComments));
   440   bool TextFile::GetLine(
bool skipComments) {
   442     return (p_GetLine(line, skipComments));
   453   bool TextFile::GetLineNoFilter(QString &line) {
   454     return (p_GetLine(line, 
false));
   463   bool TextFile::GetLineNoFilter() {
   465     return (p_GetLine(line, 
false));
   479   bool TextFile::p_GetLine(QString &line, 
bool chkComment) {
   485     std::string lineStdString;
   486     getline(p_stream, lineStdString);
   487     line = lineStdString.c_str();
   495     if(!p_stream.good()) {
   497       QString message = 
"TextFile:GetLine: -> Error reading text file: ["   504       if(p_commentString.length()) {
   505         int locComment = line.indexOf(p_commentString);
   506         if(locComment != -1) {
   507           int afterWhiteSpace = line.indexOf(QRegExp(
"[^\\s]"));
   508           if((locComment == 0) || (locComment == afterWhiteSpace)) {
   509             return p_GetLine(line, chkComment);
   524   void TextFile::PutLine(
const QString &line) {
   525     PutLine(line.toLatin1().data());
   538   void TextFile::PutLine(
const char *line) {
   542     p_stream << line << p_newLineString;
   544     if(!p_stream.good()) {
   545       if(p_openmode != 1) {
   546         QString message = 
"TextFile:PutLine: -> Error writing text file: ["   552           "TextFile:PutLine: -> Attempt to write to INPUT - Read Only text file: ["   565   void TextFile::PutLineComment(
const QString &line) {
   566     PutLine(p_commentString + line);
   575   void TextFile::PutLineComment(
const char *line) {
   576     PutLine(p_commentString + QString(line));
   580   QString TextFile::GetComment() {
   581     return(p_commentString);
   593   void TextFile::SetComment(
const char *commentString) {
   594     p_commentString = commentString;
   598   QString TextFile::GetNewLine() {
   599     return(p_newLineString);
   609   void TextFile::SetNewLine(
const char *newLineString) {
   610     p_newLineString = newLineString;
   623   int TextFile::LineCount(
const int &maxLinesToRead) {
   628     bool eofStat = 
false;
   634     streampos savePos = p_stream.tellg();
   635     p_stream.seekg(0, ios_base::beg);
   639     if(maxLinesToRead > 0) {
   640       while((getline(p_stream, tmpLine)) && (lineCount <= maxLinesToRead)) {
   645       while(getline(p_stream, tmpLine)) {
   654     p_stream.seekg(savePos, ios_base::beg);
   657       p_stream.seekg(0, ios_base::end);
   668   streamsize TextFile::Size() {
   673     bool eofStat = 
false;
   679     streampos savePos = p_stream.tellg();
   680     p_stream.seekg(0, ios_base::end);
   681     streamsize bytes = p_stream.tellg();
   682     p_stream.seekg(savePos, ios_base::beg);
   685       p_stream.seekg(0, ios_base::end);
 File name manipulation and expansion. 
 
FileName addExtension(const QString &extension) const
Adds a new extension to the file name. 
 
Namespace for the standard library. 
 
#define _FILEINFO_
Macro for the filename and line number. 
 
QString expanded() const
Returns a QString of the full file name including the file path, excluding the attributes. 
 
IString DownCase()
Converts all upper case letters in the object IString into lower case characters. ...
 
Provides access to sequential ASCII stream I/O. 
 
QString toString() const
Returns a QString of the full file name including the file path, excluding the attributes with any Is...
 
Adds specific functionality to C++ strings. 
 
Namespace for ISIS/Bullet specific routines. 
 
bool fileExists() const
Returns true if the file exists; false otherwise.