#include #include #include #include #include #include #include #include int main(int argc,char** argv) { init_global_vars(); if (argc > 2) { argv++; TScanner dfile(*argv); TLocalisamfile* of; TString s(dfile.line()); TToken_string w(s); const char* work = w.get(); const int nf = atoi(work); const TString nt(work); const int reclen = w.get_int(); if (nf) of = new TLocalisamfile(nf); else of = new TTable(nt); TToken_string d(40, ','); while (*(work = dfile.line())) d.add(work); argv++; TScanner ifile(*argv); TString name, ws(256), depcom(10); int ncodi = 2, ncodd = 2; while (*(work = ifile.line())) { s = work; s.left_just(reclen); d.restart(); w = d.get(); int st = w.get_int(); int len = w.get_int(); name = w.get(); ws = s.mid(st, len); if (ws != depcom) { if (depcom.not_empty()) of->rewrite(); ncodi = 2; ncodd = 2; of->zero(); of->put(name, ws); of->read(); if (of->good()) depcom = ws; else depcom = ""; } w = d.get(); st = w.get_int(); len = w.get_int(); name = s.mid(st, len); w = d.get(); st = w.get_int(); len = w.get_int(); ws = s.mid(st, len); if (name == "UI") name = format("UFFIVA%1d", ncodi++); else name = format("UFFIIDD%1d", ncodd++); of->put(name, ws); } if (depcom.not_empty()) of->rewrite(); delete of; } free_global_vars(); }