Skip to content
Snippets Groups Projects
Commit 6aa38147 authored by Martin Schönherr's avatar Martin Schönherr :speech_balloon:
Browse files

fix UbFileInputASCII

parent 965c59d1
No related branches found
No related tags found
1 merge request!74Clean up basics
......@@ -30,6 +30,7 @@
//! \ingroup utilities
//! \author Soeren Freudiger, Sebastian Geller
//=======================================================================================
#include <algorithm>
#include <basics/utilities/UbFileInputASCII.h>
#include <cstring>
......@@ -170,7 +171,7 @@ bool UbFileInputASCII::containsString(const string &var)
}
/*==========================================================*/
int UbFileInputASCII::readIntegerAfterString(const string &var)
// last change [10.3.2004] at [9:46]
// last change [29.6.2021] at [13:52]
// suchts in einer Datei nach varname und gibt den dahinter stehenden int-Wert zurueck
// z.B. timesteps 9
{
......@@ -187,14 +188,16 @@ int UbFileInputASCII::readIntegerAfterString(const string &var)
" wasn't found in " + this->filename));
} while (strstr(line, var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt
strcpy(line, (line + strlen(var.c_str()))); // zeile um "varname" kuerzen
while ((line[0] == ' ') || (line[0] == '\t'))
strcpy(line, (line + 1)); // Whitespaces entfernen
std::string temp{ line };
temp = temp.substr(var.size()); // zeile um "varname" kuerzen
temp.erase(std::remove(temp.begin(), temp.end(), ' '), temp.end()); // remove whitespace
temp.erase(std::remove(temp.begin(), temp.end(), '\t'), temp.end()); // remove tabs
return (atoi(line)); // Umwandlung in int
return std::stoi(temp);
}
/*==========================================================*/
// last change [10.3.2004] at [9:46]
// last change [29.6.2021] at [13:52]
// sucht in einer Datei nach varname und gibt den dahinter stehenden int-Wert zurueck
// z.B. nue 9.5
double UbFileInputASCII::readDoubleAfterString(const string &var)
......@@ -213,14 +216,16 @@ double UbFileInputASCII::readDoubleAfterString(const string &var)
} while (/*!strncmp(varname,line,sizeof(varname))==0*/ strstr(line, var.c_str()) !=
line); // Ende Schleife, wenn varname ganz in zeile vorkommt
strcpy(line, (line + strlen(var.c_str()))); // zeile um "varname" kuerzen
while ((line[0] == ' ') || (line[0] == '\t'))
strcpy(line, (line + 1)); // Whitespaces entfernen
std::string temp{ line };
temp = temp.substr(var.size()); // zeile um "varname" kuerzen
temp.erase(std::remove(temp.begin(), temp.end(), ' '), temp.end()); // remove whitespace
temp.erase(std::remove(temp.begin(), temp.end(), '\t'), temp.end()); // remove tabs
return (atof(line)); // Umwandlung in double
return std::stod(temp);
}
/*==========================================================*/
// [9.9.2002]
// last change [29.6.2021] at [13:52]
// liefert string-Wert der hinter dem uebergebenen char feld in der datei infile steht
// zudem wird der wert in die uebergebene variable value uebertragen (falls man das ergebniss als char benoetig)
string UbFileInputASCII::readStringAfterString(const string &var) //,char *value)
......@@ -239,15 +244,13 @@ string UbFileInputASCII::readStringAfterString(const string &var) //,char *value
" wasn't found in " + this->filename));
} while (strstr(line, var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt
strcpy(line, (line + strlen(var.c_str()))); // zeile um "varname" kuerzen
while ((line[0] == ' ') || (line[0] == '\t'))
strcpy(line, (line + 1)); // Whitespaces entfernen
std::string temp{ line };
temp = temp.substr(var.size()); // zeile um "varname" kuerzen
char *p;
p = strtok(line, " "); // schneidet alles "ab und inklusive space " nach namen ab
p = strtok(line, "\t"); // schneidet alles "ab und inklusive tab " nach namen ab
temp.erase(std::remove(temp.begin(), temp.end(), ' '), temp.end()); // remove whitespace
temp.erase(std::remove(temp.begin(), temp.end(), '\t'), temp.end()); // remove tabs
return static_cast<string>(p); // Umwandlung in string
return temp;
}
/*==========================================================*/
// last change [10.3.2004] at [9:46]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment