169 QFile inputFile(fileName);
170 if (inputFile.open(QIODevice::ReadOnly|QIODevice::Text))
172 QTextStream in(&inputFile);
175 QString line = in.readLine();
176 QStringList list = line.split(QRegularExpression(
"\\s+"));
178 if(list[0].contains(
"#") || list.size() != 11) {
184 one.
time = list[1].toFloat() / 1000.0f;
185 one.
rd[
X] = list[3].toFloat() / 1000.0f;
186 one.
rd[
Y] = list[4].toFloat() / 1000.0f;
187 one.
rd[
Z] = list[5].toFloat() / 1000.0f;
188 one.
Q[
X] = list[7].toFloat() / 1e9f;
189 one.
Q[
Y] = list[8].toFloat() / 1e9f;
190 one.
Q[
Z] = list[9].toFloat() / 1e9f;
191 one.
good = list[10].toFloat() / 100.0f;
197 qInfo(
"Read %d dipoles in dip format from %s\n",set.
size(),fileName.toUtf8().data());
200 qCritical(
"Not able to read from: %s\n", fileName.toUtf8().data());
219 if (fileName.isEmpty() || this->size() == 0)
222 if ((out = fopen(fileName.toUtf8().data(),
"w")) ==
nullptr) {
223 qInfo(
"%s", fileName.toUtf8().constData());
227 for (k = 0, nsave = 0; k < this->
size(); k++) {
228 one = m_qListDips[k];
232 for (p = 0; p < 3; p++) {
240 if (fwrite(&one_out,
sizeof(
bdipEcdRec),1,out) != 1) {
241 qCritical(
"Failed to write a dipole");
243 QFile::remove(fileName);
249 if (fclose(out) != 0) {
251 qInfo(
"%s", fileName.toUtf8().constData());
254 qInfo(
"Save %d dipoles in bdip format to %s\n",nsave,fileName.toUtf8().data());
266 if (fileName.isEmpty() || this->size() == 0)
268 if ((out = fopen(fileName.toUtf8().data(),
"w")) ==
nullptr) {
269 qInfo(
"%s", fileName.toUtf8().constData());
272 fprintf(out,
"# CoordinateSystem \"Head\"\n");
273 fprintf (out,
"# %7s %7s %8s %8s %8s %8s %8s %8s %8s %6s\n",
274 "begin",
"end",
"X (mm)",
"Y (mm)",
"Z (mm)",
"Q(nAm)",
"Qx(nAm)",
"Qy(nAm)",
"Qz(nAm)",
"g/%");
275 for (k = 0, nsave = 0; k < this->
size(); k++) {
276 one = this->m_qListDips[k];
278 fprintf(out,
" %7.1f %7.1f %8.2f %8.2f %8.2f %8.3f %8.3f %8.3f %8.3f %6.1f\n",
280 1000*one.
rd[
X],1000*one.
rd[
Y],1000*one.
rd[
Z],
281 1e9*one.
Q.norm(),1e9*one.
Q[
X],1e9*one.
Q[
Y],1e9*one.
Q[
Z],100.0*one.
good);
285 fprintf(out,
"## Name \"%s dipoles\" Style \"Dipoles\"\n",
"ALL");
286 if (fclose(out) != 0) {
288 qInfo(
"%s", fileName.toUtf8().constData());
291 qInfo(
"Save %d dipoles in dip format to %s\n",nsave,fileName.toUtf8().data());