lilypond-1.3.18
[lilypond.git] / flower / include / text-db.hh
blobeb0ca98fc439816d5f5387c094f66868688d9fb2
1 #ifndef TEXTDB_HH
2 #define TEXTDB_HH
4 #include "data-file.hh"
6 /**a "const" Array. Contents can't be changed. do "#" comments, read quote enclosed fields */
8 class Text_record : Array<String>
10 int line_no;
11 String filename;
13 public:
14 Text_record() { } // needed because of other ctor
16 /// report an error in this line.
17 void message (String s);
18 String operator[](int j) {
19 return Array<String>::operator[](j);
22 Text_record (Array<String> s, String fn, int j) : Array<String>(s) {
23 filename = fn; line_no = j;
25 Array<String>::size;
28 /** abstraction for a datafile.
29 add a subrec/fieldsep/record separator
32 class Text_db : private Data_file
34 void gobble_leading_white();
35 public:
36 /// get a line with records
37 Text_record get_record();
39 Text_db (String fn):Data_file (fn) { }
40 Data_file::error;
41 bool eof_b ();
43 /// get next line.
44 Text_record operator++(int) {
45 return get_record();
47 /// are we done yet?
48 operator bool() {
49 return !eof_b ();
53 #endif