#include <rlfileload.h>

Public Member Functions | |
| rlFileLoad () | |
| virtual | ~rlFileLoad () |
| int | load (const char *filename) |
| void | unload () |
| const char * | firstLine () |
| const char * | nextLine () |
| void | setDebug (int state) |
Private Attributes | |
| int | loaded |
| int | debug |
| rlFileLines | file_lines |
| rlFileLines * | current_line |
This class loads a text file to memory. Then you can iterate to it's lines.
Definition at line 31 of file rlfileload.h.
| rlFileLoad::rlFileLoad | ( | ) |
Definition at line 20 of file rlfileload.cpp.
00021 { 00022 loaded = debug = 0; 00023 file_lines.line = NULL; 00024 file_lines.next = NULL; 00025 current_line = NULL; 00026 }
| rlFileLoad::~rlFileLoad | ( | ) | [virtual] |
Definition at line 28 of file rlfileload.cpp.
00029 { 00030 unload(); 00031 }
| const char * rlFileLoad::firstLine | ( | ) |
Definition at line 81 of file rlfileload.cpp.
00082 { 00083 if(loaded == 0) return NULL; 00084 current_line = &file_lines; 00085 current_line = current_line->next; 00086 if(current_line == NULL) return NULL; 00087 if(debug) printf("rlFileLoad::firstLine=%s",current_line->line); 00088 return current_line->line; 00089 }
| int rlFileLoad::load | ( | const char * | filename | ) |
Definition at line 33 of file rlfileload.cpp.
00034 { 00035 FILE *fin; 00036 rlFileLines *fl; 00037 char line[rl_PRINTF_LENGTH], *cptr; 00038 00039 unload(); 00040 fin = fopen(filename,"r"); 00041 if(fin == NULL) return -1; 00042 00043 fl = &file_lines; 00044 while(fgets(line,sizeof(line)-1,fin) != NULL) 00045 { 00046 cptr = strchr(line,'\n'); 00047 if(cptr != NULL) *cptr = '\0'; 00048 cptr = strchr(line,0x0D); 00049 if(cptr != NULL) *cptr = '\0'; 00050 if(debug) printf("rlFileLoad::load line=%s\n",line); 00051 fl->next = new rlFileLines; 00052 fl = fl->next; 00053 fl->line = new char [strlen(line)+1]; 00054 strcpy(fl->line,line); 00055 fl->next = NULL; 00056 } 00057 00058 fclose(fin); 00059 loaded = 1; 00060 return 1; 00061 }
| const char * rlFileLoad::nextLine | ( | ) |
Definition at line 91 of file rlfileload.cpp.
00092 { 00093 if(loaded == 0) return NULL; 00094 if(current_line != NULL) current_line = current_line->next; 00095 if(current_line == NULL) return NULL; 00096 if(debug) printf("rlFileLoad::nextLine=%s",current_line->line); 00097 return current_line->line; 00098 }
| void rlFileLoad::setDebug | ( | int | state | ) |
Definition at line 100 of file rlfileload.cpp.
| void rlFileLoad::unload | ( | ) |
Definition at line 63 of file rlfileload.cpp.
00064 { 00065 rlFileLines *fl,*flold; 00066 00067 if(loaded == 0) return; 00068 fl = &file_lines; 00069 fl = fl->next; 00070 while(fl != NULL) 00071 { 00072 if(debug) printf("rlFileLoad::unload line=%s",fl->line); 00073 delete [] fl->line; 00074 flold = fl; 00075 fl = fl->next; 00076 delete flold; 00077 } 00078 loaded = 0; 00079 }
rlFileLines* rlFileLoad::current_line [private] |
Definition at line 45 of file rlfileload.h.
int rlFileLoad::debug [private] |
Definition at line 43 of file rlfileload.h.
rlFileLines rlFileLoad::file_lines [private] |
Definition at line 44 of file rlfileload.h.
int rlFileLoad::loaded [private] |
Definition at line 42 of file rlfileload.h.
1.6.3