MCPcopy Create free account
hub / github.com/KDE/labplot / parse

Method parse

src/3rdparty/liborigin/OriginAnyParser.cpp:84–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82}
83
84bool OriginAnyParser::parse()
85{
86#ifdef GENERATE_CODE_FOR_LOG
87 // append progress in log file
88 logfile = fopen("opjfile.log", "a");
89#endif // GENERATE_CODE_FOR_LOG
90
91 // get length of file:
92 file.seekg(0, ios_base::end);
93 d_file_size = file.tellg();
94 file.seekg(0, ios_base::beg);
95
96 LOG_PRINT(logfile, "File size: %" PRId64 "\n", d_file_size)
97
98 // get file and program version, check it is a valid file
99 readFileVersion();
100 if (parseError > 1)
101 return false;
102 curpos = file.tellg();
103 LOG_PRINT(logfile, "Now at %" PRId64 " [0x%" PRIx64 "]\n", curpos, curpos)
104
105 // get global header
106 readGlobalHeader();
107 if (parseError > 1)
108 return false;
109 curpos = file.tellg();
110 LOG_PRINT(logfile, "Now at %" PRId64 " [0x%" PRIx64 "]\n", curpos, curpos)
111
112 // get dataset list
113 unsigned int dataset_list_size = 0;
114 objectIndex = 0; // use it to count DataSets
115
116 LOG_PRINT(logfile, "Reading Data sets ...\n")
117 while (true) {
118 if (!readDataSetElement())
119 break;
120 dataset_list_size++;
121 }
122 if (parseError > 1)
123 return false;
124 LOG_PRINT(logfile, " ... done. Data sets: %u\n", dataset_list_size)
125 curpos = file.tellg();
126 LOG_PRINT(logfile, "Now at %" PRId64 " [0x%" PRIx64 "], file size %" PRId64 "\n", curpos,
127 curpos, d_file_size)
128
129 for (unsigned int i = 0; i < spreadSheets.size(); ++i) {
130 if (spreadSheets[i].sheets > 1) {
131 LOG_PRINT(logfile, " CONVERT SPREADSHEET \"%s\" to EXCEL\n",
132 spreadSheets[i].name.c_str());
133 convertSpreadToExcel(i);
134 --i;
135 }
136 }
137
138 // get window list
139 unsigned int window_list_size = 0;
140 objectIndex = 0; // reset it to count Windows (except Notes)
141

Callers

nothing calls this directly

Calls 3

seekgMethod · 0.45
tellgMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected