flower-1.0.27
[lilypond.git] / flower / textdb.hh
blob3586c0d180628fd611e3f99ef4a02e22592afa33
1 #ifndef TEXTDB_HH
2 #define TEXTDB_HH
4 #include "textstr.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 message(String s) {
18 cerr << '\n'<< filename << ": "<< line_no << s << "\n";
20 String operator[](int j) {
21 return Array<String>::operator[](j);
24 Text_record(Array<String> s, String fn, int j) : Array<String>(s) {
25 filename = fn; line_no = j;
27 Array<String>::size;
30 /** abstraction for a datafile.
31 add a subrec/fieldsep/record separator
34 class Text_db : private Data_file
36 void gobble_leading_white();
37 public:
38 /// get a line with records
39 Text_record get_record();
41 Text_db(String fn):Data_file(fn) { }
42 Data_file::error;
43 bool eof();
45 /// get next line.
46 Text_record operator++(int) {
47 return get_record();
49 /// are we done yet?
50 operator bool() {
51 return !eof();
55 #endif