Almetare 1.20
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
util.h
gehe zur Dokumentation dieser Datei
1//******************************************************************************
2// Copyright (c) 2002-2005 by Friedemann Seebass, Germany.
3// Dieses Programm ist freie Software. Siehe GNU GPL Notiz in Datei main.cpp.
4// This program is free software. See the GNU GPL notice in file main.cpp.
5// Projekt: Almetare - Alle meine Taschenrechner
6//******************************************************************************
9//******************************************************************************
10// Wann Wer Was
11// ---------- -------- ---------------------------------------------------------
12// 22.12.2004 fse Funktion getNextSym() aus Klasse Fx3600pPrgDlg hierher
13// verlegt, da jetzt auch in CasioSciDatDlg benoetigt
14// 15.03.2003 fse neue Funktion replace
15// 22.04.2002 fse erzeugt
16//******************************************************************************
17
18#ifndef UTIL_H
19#define UTIL_H
20
21#ifndef __cplusplus
22#error util.h is only for C++!
23#endif
24
25//******************************************************************************
26
27#include <string>
28
29using namespace std;
30
31#define FORCE_SCI 0.0000001
32
33//******************************************************************************
34// Klasse Util:
35//******************************************************************************
36
42// fse, 22.04.02
43
44class Util
45{
46public:
47 enum Direction { LEFT, CENTER, RIGHT };
48 static void shiftStr(string& str, string recruit, Direction dir = RIGHT);
49 static string toLower(const string& str);
50 static string doubleToStr(double val, int format, int digits, int shiftNum, double forceSci = FORCE_SCI);
51 static string doubleToSxgStr(double val);
52 static string stripTrailingOs(const string& numStr);
53 static string shiftPoint(double num, int digits, int shiftNum);
54 static string shiftPointEng(const string& numStr, Direction dir, int digits);
55 static void getMantExp(const string& numStr, double& m, int& e);
56 static bool getMantExp(const string& numStr, string& mnt, string& exp);
57 static int getEngShiftNum(int e, int eng);
58 static string roundMantisse(string& numStr, int digits, double forceSci = FORCE_SCI);
59 static string formatFixNum(double num, int digits);
60 static string formatFixNumStr(string numStr, int digits);
61 static string roundNumStr(string& numStr, int digits, bool isSci, double forceSci = FORCE_SCI);
62 static string roundSxgNumStr(string& numStr, int maxLen);
63 static string formatSeven(string& numStr, int len, int expLen, char fillChar);
64 static string formatFixNumStr(string& numStr, int digits, int digitsAfterPoint, bool isOstripped = true);
65 static string trimNumStr(string numStr, int maxLen);
66 static string trimStr(string str, int len = 15, Direction dir = LEFT, char fillChar = ' ');
67 static string trimStr(int num , int len = 15, Direction dir = LEFT, char fillChar = ' ');
68 static string replace(const string& srcStr, const string& oldStr, const string& newStr);
69 static string stripLines(string str);
70 static void eraseCrs(string& str);
71 static void stripLine(string& line);
72 static string getNextSym(string& expr);
73 static double fact(double n);
74 static double root(double x, double y);
75};
76
77//******************************************************************************
78
79#endif // !UTIL_H
80
Allgemeine Funktionen, die nicht einer speziellen Klasse zugerechnet werden koennen.
Definition: util.h:45
static string getNextSym(string &expr)
Holt aus dem String expr das erste Symbol.
Definition: util.cpp:1140
static void shiftStr(string &str, string recruit, Direction dir=RIGHT)
Funktion verchiebt alle Zeichen des Strings str um ein Zeichen nach links oder rechts,...
Definition: util.cpp:724
static string shiftPointEng(const string &numStr, Direction dir, int digits)
Erwartet in numStr den String einer Zahl in Fix- oder Sci-Notation (keinen Bruch) und wandelt ihn in ...
Definition: util.cpp:288
static string roundNumStr(string &numStr, int digits, bool isSci, double forceSci=FORCE_SCI)
Rundet die Zahl in in numStr auf digits Stellen.
Definition: util.cpp:618
static string stripLines(string str)
Entfernt alle Kommentare (Kommentarsymbol ';') und fuehrende Leerzeichen/Tabulatoren einer Zeile aus ...
Definition: util.cpp:1062
static string formatFixNumStr(string numStr, int digits)
Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf insgesamt digits echte Ste...
Definition: util.cpp:910
static string shiftPoint(double num, int digits, int shiftNum)
Erzeugt einen String in Exponentialschreibweise mit der Zahl, die in num uebergeben wird.
Definition: util.cpp:160
static string formatFixNum(double num, int digits)
Formatiert double num im fixed Format auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohn...
Definition: util.cpp:885
static string replace(const string &srcStr, const string &oldStr, const string &newStr)
Funktion ersetzt im String srcStr jedes Vorkommen des Strings oldStr durch den String newStr und gibt...
Definition: util.cpp:1034
static string stripTrailingOs(const string &numStr)
Erwartet in numStr den String einer Zahl in SCI- oder FIX-Notation und entfernt endstaendige Nachkomm...
Definition: util.cpp:200
static string toLower(const string &str)
Wandelt String in Kleinbuchstaben um.
Definition: util.cpp:35
static string trimNumStr(string numStr, int maxLen)
Haengt an numStr gegebenenfalls Dezimalpunkt an und bringt ihn rechtsbuendig auf maxLen Zeichen Laeng...
Definition: util.cpp:968
static int getEngShiftNum(int e, int eng)
Funktion ermittelt die Anzahl der Stellen, um die das Komma einer Zahl in Folge eines Drucks auf die ...
Definition: util.cpp:396
static double fact(double n)
Berechnet rekursiv die Fakultaet n! der Zahl n.
Definition: util.cpp:993
static string doubleToSxgStr(double val)
Wandelt val in einen String im Sexagesimalformat um: z.B.
Definition: util.cpp:56
static string trimStr(string str, int len=15, Direction dir=LEFT, char fillChar=' ')
Liefert String mit len Zeichen Laenge zurueck, der str an der Position dir enthaelt.
Definition: util.cpp:771
static void stripLine(string &line)
Entfernt aus dem uebergebenen String fuehrende Leer- und Tabulatorzeichen, abschliessende Leerzeichen...
Definition: util.cpp:1111
static void getMantExp(const string &numStr, double &m, int &e)
Extrahiert aus dem String numStr die Mantisse m und den Exponenten e als double bzw.
Definition: util.cpp:369
static void eraseCrs(string &str)
Entfernt aus dem uebergebenen String alle Carriage Returns ("\r").
Definition: util.cpp:1090
static double root(double x, double y)
Berechnet x^(1/y).
Definition: util.cpp:1015
static string formatSeven(string &numStr, int len, int expLen, char fillChar)
Formatiert String numStr so, dass er genau len Zeichen lang ist, rechtsbuendig ist und der Exponent -...
Definition: util.cpp:449
static string doubleToStr(double val, int format, int digits, int shiftNum, double forceSci=FORCE_SCI)
Wandelt double val mit Formatierung in einen String.
Definition: util.cpp:105
static string roundSxgNumStr(string &numStr, int maxLen)
Rundet die Sexagesimal-Zahl in numStr so, dass sie die Laenge maxLen nicht ueberschreitet (ohne Vorze...
Definition: util.cpp:676
static string roundMantisse(string &numStr, int digits, double forceSci=FORCE_SCI)
Funktion bringt die Mantisse der Zahl in numStr auf hoechstens digits Stellen, falls sie mehr Stellen...
Definition: util.cpp:525