Changeset 18469 for gsdl/trunk/common-src/src/gdbmedit/txt2db/txt2db.cpp
- Timestamp:
- 2009-02-06T18:19:44+13:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/common-src/src/gdbmedit/txt2db/txt2db.cpp
r17783 r18469 72 72 char *dbname; 73 73 int append = 0; 74 int delkey = 0; 75 74 76 if (argc == 3) { 75 77 if (strcmp (argv[1], "-append") == 0) { … … 105 107 value = ""; 106 108 107 // look for [key]\n 109 // Parse out 'key' from [key]\n 110 111 // scan for first occurrence of [ 108 112 while (!cin.eof() && c != '[') cin.get(c); 113 109 114 if (!cin.eof()) cin.get(c); // skip [ 115 116 // now look for closing ], building up 'key' as we go 110 117 while (!cin.eof() && c != ']') { 111 118 key.push_back ((unsigned char)c); 112 119 cin.get(c); 113 120 } 114 if (!cin.eof()) cin.get(c); // skip ] 121 122 if (!cin.eof()) { 123 // most likely an eol char, but if '-', then signifies record 124 // is to be deleted, not added 125 cin.get(c); 126 if (c == '-') { 127 delkey = 1; 128 } 129 else { 130 delkey = 0; 131 } 132 } 115 133 while (!cin.eof() && (c == '\n' || c == '\r')) cin.get(c); 116 134 … … 155 173 } 156 174 key_data.dsize = strlen(key_data.dptr); 175 176 if (delkey) { 177 // delete the given key 178 if (gdbm_delete(dbf, key_data) < 0) { 179 cerr << "gdbm_delete returned an error" << endl; 180 } 181 } 182 else { 183 184 // add/append 185 186 // convert value to a datum datatype 187 datum value_data; 188 value_data.dptr = value.getcstr(); 189 if (value_data.dptr == NULL) { 190 cerr << "NULL value_data.dptr" << endl; 191 exit (0); 192 } 193 value_data.dsize = strlen(value_data.dptr); 157 194 158 // convert value to a datum datatype 159 datum value_data; 160 value_data.dptr = value.getcstr(); 161 if (value_data.dptr == NULL) { 162 cerr << "NULL value_data.dptr" << endl; 163 exit (0); 164 } 165 value_data.dsize = strlen(value_data.dptr); 166 167 // store the value 168 if (gdbm_store (dbf, key_data, value_data, GDBM_REPLACE) < 0) { 169 cerr << "gdbm_store returned an error" << endl; 170 exit (0); 171 } 172 195 // store the value 196 if (gdbm_store (dbf, key_data, value_data, GDBM_REPLACE) < 0) { 197 cerr << "gdbm_store returned an error" << endl; 198 exit (0); 199 } 200 201 202 free(value_data.dptr); 203 } 204 173 205 free(key_data.dptr); 174 free(value_data.dptr);175 206 } 176 207 }
Note:
See TracChangeset
for help on using the changeset viewer.