Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Verzeichnisse | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente

Util Klassenreferenz

Allgemeine Funktionen, die nicht einer speziellen Klasse zugerechnet werden koennen. Mehr ...

#include <util.h>

Aufstellung aller Elemente

Öffentliche Typen

enum  Direction { LEFT, CENTER, RIGHT }

Öffentliche, statische Methoden

static void shiftStr (string &str, string recruit, Direction dir=RIGHT)
 Funktion verchiebt alle Zeichen des Strings str um ein Zeichen nach links oder rechts, abhaengig von dir.
static string toLower (const string &str)
 Wandelt String in Kleinbuchstaben um.
static string doubleToStr (double val, int format, int digits, int shiftNum, double forceSci=FORCE_SCI)
 Wandelt double val mit Formatierung in einen String.
static string doubleToSxgStr (double val)
 Wandelt val in einen String im Sexagesimalformat um: z.B.
static string stripTrailingOs (const string &numStr)
 Erwartet in numStr den String einer Zahl in SCI- oder FIX-Notation und entfernt endstaendige Nachkomma-Nullen der Mantisse.
static string shiftPoint (double num, int digits, int shiftNum)
 Erzeugt einen String in Exponentialschreibweise mit der Zahl, die in num uebergeben wird.
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 eine Zahl in "Engineering"-Notation, d.h., der Exponent ist ein Vielfaches von 3.
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.
static bool getMantExp (const string &numStr, string &mnt, string &exp)
 Extrahiert aus dem String numStr die Mantisse mnt und den Exponenten exp als Strings.
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 "ENG"- oder "ENG<"-Taste verschoben werden muss.
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 hat.
static string formatFixNum (double num, int digits)
 Formatiert double num im fixed Format auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma.
static string formatFixNumStr (string numStr, int digits)
 Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma.
static string roundNumStr (string &numStr, int digits, bool isSci, double forceSci=FORCE_SCI)
 Rundet die Zahl in in numStr auf digits Stellen.
static string roundSxgNumStr (string &numStr, int maxLen)
 Rundet die Sexagesimal-Zahl in numStr so, dass sie die Laenge maxLen nicht ueberschreitet (ohne Vorzeichen).
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 - falls vorhanden - mit Vorzeichen eine Laenge von expLen Zeichen hat.
static string formatFixNumStr (string &numStr, int digits, int digitsAfterPoint, bool isOstripped=true)
 Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf digitsAfterPoint Nachkommastellen.
static string trimNumStr (string numStr, int maxLen)
 Haengt an numStr gegebenenfalls Dezimalpunkt an und bringt ihn rechtsbuendig auf maxLen Zeichen Laenge.
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.
static string trimStr (int num, int len=15, Direction dir=LEFT, char fillChar= ' ')
 Liefert String mit len Zeichen Laenge zurueck, der num an der Position dir enthaelt.
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 das Ergebnis als Return-Wert zurueck.
static string stripLines (string str)
 Entfernt alle Kommentare (Kommentarsymbol ';') und fuehrende Leerzeichen/Tabulatoren einer Zeile aus dem String str und ersetzt alle Zeilenumbrueche durch ein Leerzeichen.
static void eraseCrs (string &str)
 Entfernt aus dem uebergebenen String alle Carriage Returns ("\r").
static void stripLine (string &line)
 Entfernt aus dem uebergebenen String fuehrende Leer- und Tabulatorzeichen, abschliessende Leerzeichen und Kommentare, die durch ein Kommentarzeichen (';') abgetrennt sind, und ersetzt mehrfache Leerzeichen durch nur eines.
static string getNextSym (string &expr)
 Holt aus dem String expr das erste Symbol.
static double fact (double n)
 Berechnet rekursiv die Fakultaet n! der Zahl n.
static double root (double x, double y)
 Berechnet x^(1/y).


Ausführliche Beschreibung

Allgemeine Funktionen, die nicht einer speziellen Klasse zugerechnet werden koennen.

Z.B. Funktionen zur Umwandlung von double in string (mit Rundung/Formatierung), Umwandeln von Strings in Grossbuchstaben u.a.

Die Klasse enthaelt keine Daten, nur statische Funktionen.


Dokumentation der Aufzählungstypen

enum Util::Direction
 

Aufzählungswerte:
LEFT 
CENTER 
RIGHT 


Dokumentation der Elementfunktionen

string Util::doubleToStr double  val,
int  format,
int  digits,
int  shiftNum,
double  forceSci = FORCE_SCI
[static]
 

Wandelt double val mit Formatierung in einen String.

Parameter:
val der umzuwandelnde Wert
format Format, in das umgewandelt werden soll:
  • format = 0: Standardformat
  • format = 1: wissenschaftliches Format
  • format = 2: fixes Format
digits Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci)
shiftNum Anzahl der Stellen, um die das Komma der Mantisse einer Zahl im wissenschaftlichen Format nach rechts (>0) oder links (<0) verschoben wird.
forceSci Extra fuer den Casio fx-85v: er hat zwei Modi, wie kleine Zahlen dargestellt werden: Ab einer bestimmtem "Kleinheit" (<0.01 oder <0.0000001) wird im Standardformat zwangsweise in die SCI-Darstellung gewechselt. Diese Grenze kann man in forceSci uebergeben.
Rückgabe:
Ergebnis-String

string Util::doubleToSxgStr double  val  )  [static]
 

Wandelt val in einen String im Sexagesimalformat um: z.B.

60°30'20" <=> 60.505556

Parameter:
val Wert, der umgewandelt werden soll
Rückgabe:
Ergebnis-String

void Util::eraseCrs string &  str  )  [static]
 

Entfernt aus dem uebergebenen String alle Carriage Returns ("\r").

Noetig unter Windows, da dort am Zeilenende "\r\n" steht.

Parameter:
str zu strippender String

double Util::fact double  n  )  [static]
 

Berechnet rekursiv die Fakultaet n! der Zahl n.

Parameter:
n Eingabezahl
Rückgabe:
Fakultaet der Eingabezahl

string Util::formatFixNum double  num,
int  digits
[static]
 

Formatiert double num im fixed Format auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma.

Parameter:
num Eingabewert
digits maximale Anzahl der Stellen insgesamt
Rückgabe:
Ergebnis-String

string Util::formatFixNumStr string &  numStr,
int  digits,
int  digitsAfterPoint,
bool  isOstripped = true
[static]
 

Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf digitsAfterPoint Nachkommastellen.

Wenn die Gesamtzahl der Stellen dann aber digits ueberschreitet, wird auf digits Stellen insgesamt formatiert (Vor- + Nachkommastellen ohne Komma). Wenn isOstripped true, werden abschliessende Nullen nach dem Komma entfernt.

Parameter:
numStr Eingabe-String
digits maximale Anzahl der Stellen insgesamt
digitsAfterPoint Anzahl der Stellen nach dem Komma
isOstripped wenn true, werden endstaendige Nullen nach dem Komma entfernt
Rückgabe:
Ergebnis-String

string Util::formatFixNumStr string  numStr,
int  digits
[static]
 

Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma.

Parameter:
numStr Eingabe-String
digits maximale Anzahl der Stellen insgesamt
Rückgabe:
Ergebnis-String

string Util::formatSeven string &  numStr,
int  len,
int  expLen,
char  fillChar
[static]
 

Formatiert String numStr so, dass er genau len Zeichen lang ist, rechtsbuendig ist und der Exponent - falls vorhanden - mit Vorzeichen eine Laenge von expLen Zeichen hat.

Leerstellen werden mit dem Fuellzeichen fillChar gefuellt.

Parameter:
numStr Eingabe-String
len diese Laenge soll der Ergebnis-String haben
expLen diese Laenge soll der Ergebnis-Exponent haben
fillChar Zeichen mit dem der Ergebnis-String aufgefuellt wird, wenn er kuerzer als len ist
Rückgabe:
Ergebnis-String

int Util::getEngShiftNum int  e,
int  eng
[static]
 

Funktion ermittelt die Anzahl der Stellen, um die das Komma einer Zahl in Folge eines Drucks auf die "ENG"- oder "ENG<"-Taste verschoben werden muss.

Parameter:
e Exponent einer Zahl
eng Anzahl der Drücke auf "ENG"- oder "ENG<"-Taste
Rückgabe:
Anzahl der Stellen, um die das Komma verschoben werden muss

bool Util::getMantExp const string &  numStr,
string &  mnt,
string &  exp
[static]
 

Extrahiert aus dem String numStr die Mantisse mnt und den Exponenten exp als Strings.

Wenn ein Exponent vorhanden ist, wird true zurueckgegeben. Beispiele:

    - "2.345e+002"   => mnt = "2.345"    , exp = "+002"
    - "3.4567"       => mnt = "3.4567"   , exp = ""
    - "123.45000"    => mnt = "123.45000", exp = ""
    - "-23.400e-032" => mnt = "-23.400"  , exp = "-032"
Parameter:
numStr der String, aus dem Mantisse und Exponent extrahiert werden sollen
Rückgabewerte:
mnt String mit der Mantisse
exp String mit dem Exponenten
Rückgabe:
true, wenn numStr tatsaechlich in Sci-Notation ist, sonst false

void Util::getMantExp const string &  numStr,
double &  m,
int &  e
[static]
 

Extrahiert aus dem String numStr die Mantisse m und den Exponenten e als double bzw.

int.

Parameter:
numStr der String, aus dem Mantisse und Exponent extrahiert werden sollen
Rückgabewerte:
m Mantisse als double
e Exponent als double

string Util::getNextSym string &  expr  )  [static]
 

Holt aus dem String expr das erste Symbol.

Parameter:
expr String mit einer ganzen Tastenfolge (z.B. "3.4 * 3 sin ="
Rückgabe:
String mit dem ersten Symbol

string Util::replace const string &  srcStr,
const string &  oldStr,
const string &  newStr
[static]
 

Funktion ersetzt im String srcStr jedes Vorkommen des Strings oldStr durch den String newStr und gibt das Ergebnis als Return-Wert zurueck.

Parameter:
srcStr String in dem gesucht wird
oldStr Teilstring, nach dem in srcStr gesucht wird
newStr String, durch den jedes Vorkommen von oldStr ersetzt wird

double Util::root double  x,
double  y
[static]
 

Berechnet x^(1/y).

Als Besonderheit sind auch die Wurzeln negativer Radikanden erlaubt, sofern y ganzzahlig und ungerade.

Parameter:
x Radikand
y Wurzelexponent
Rückgabe:
Wurzel

string Util::roundMantisse string &  numStr,
int  digits,
double  forceSci = FORCE_SCI
[static]
 

Funktion bringt die Mantisse der Zahl in numStr auf hoechstens digits Stellen, falls sie mehr Stellen hat.

Die Zahl in numStr liegt eigentlich bereits in der gewuenschten Form (SCI, FIX, shiftNum, Anzahl Stellen, Anzahl Stellen der Mantisse) vor und wird in der Regel unveraendert wieder zurueckgegeben. Es kann aber sein, dass die Zahl (bzw. die Mantisse) zu viele Stellen hat, um noch in der Anzeige dargestellt werden zu koennen. Dann muss die Zahl (bzw. nur die Mantisse) auf die passende Stellenanzahl neu gerundet werden. Dabei kann es auch passieren, dass von FIX- in SCI-Notation gewechselt werden muss. In diesem Fall veraendert sich aber die Bedeutung von digits! Denn die Mantisse darf dann natuerlich nur die Zahl von Stellen abzueglich der Stellen fuer den Exponenten haben. Ein Vorzeichen zaehlt bei der Stellenanzahl nicht mit. Ein besonderer Fall besteht auch, wenn die Zahl mit einer Anzahl von Nullen beginnt (z.B. 0.00012345678); entweder wird dann in die SCI-Notation gewechselt (wenn die Zahl kleiner als forceSci ist), oder die Zahl der Stellen muss um die Zahl der fuehrenden Nullen reduziert werden, um den ganzen String noch unterzubringen. Wenn die resultierende Stellenzahl kleiner wird als eins, wird ebenfalls in SCI-Notation gewechselt.

Parameter:
numStr Eingabe-String
digits Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci)
forceSci wenn die Zahl kleiner als forceSci ist, wird sie garantiert in SCI-Notation zurueckgegeben
Rückgabe:
Ergebnis-String

string Util::roundNumStr string &  numStr,
int  digits,
bool  isSci,
double  forceSci = FORCE_SCI
[static]
 

Rundet die Zahl in in numStr auf digits Stellen.

Die Zahl kann dabei sowohl in FIX- als auch in SCI-Notation gegeben sein. Wenn isSci true ist, wird die Zahl auf jeden Fall in SCI-Notation zurueckgeliefert; wenn isSci false ist, wird zusaetzlich forceSci ausgewertet: Die Zahl wird in FIX-Notation zurueckgegeben, wenn sie groesser oder gleich forceSci ist, sonst als SCI. kleiner als forceSci ist.

Parameter:
numStr Eingabe-String
digits Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci)
isSci wenn true, wird die Zahl garantiert in SCI-Notation zurueckgegeben
forceSci wenn die Zahl kleiner als forceSci ist, wird sie garantiert in SCI-Notation zurueckgegeben
Rückgabe:
Ergebnis-String

string Util::roundSxgNumStr string &  numStr,
int  maxLen
[static]
 

Rundet die Sexagesimal-Zahl in numStr so, dass sie die Laenge maxLen nicht ueberschreitet (ohne Vorzeichen).

Format der Sexagesimalzahl: 12°34'56.78 (Grad, Minuten, Sekunden). Die Stellenanzahl der Minuten kann 2 nicht ueberschreiten, die Anzahl der Vorkommastellen der Sekunden ebenfalls nicht.

Parameter:
numStr Eingabe-String
maxLen maximale Laenge des Ergebnis-Strings
Rückgabe:
Ergebnis-String

string Util::shiftPoint double  num,
int  digits,
int  shiftNum
[static]
 

Erzeugt einen String in Exponentialschreibweise mit der Zahl, die in num uebergeben wird.

Parameter:
num die Zahl, deren Komma verschoben werden soll
digits Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci)
shiftNum Anzahl der Stellen, um die das Komma der Mantisse einer Zahl im wissenschaftlichen Format nach rechts (>0) oder links(<0) verschoben wird.
Rückgabe:
Ergebnis-String

string Util::shiftPointEng const string &  numStr,
Direction  dir,
int  digits
[static]
 

Erwartet in numStr den String einer Zahl in Fix- oder Sci-Notation (keinen Bruch) und wandelt ihn in eine Zahl in "Engineering"-Notation, d.h., der Exponent ist ein Vielfaches von 3.

Je nach dir wird das Komma der Mantisse dabei nach rechts oder links verschoben. Gesteuert wird das Ganze durch den statischen Zaehler eng, der zunaechst 0 sein muss. Jeder Druck auf ENG inkrementiert ihn, jeder Druck auf ENG< dekrementiert ihn, die 0 selbst wird immer uebersprungen. Problematisch ist, dass je nach dem, wie die Zahl im "Urzustand" aussieht, verschieden verfahren werden muss (in Klammern: eng, shiftNum):

    Urzustand  1. ENG        2. ENG           1. ENG<           2. ENG<
    3.1        3.1+00 (1,0)    3100-03 (2,3)   3.1+00 ( 1, 0)   0.0031+03 (-2,-3)
    3.1                                        3.1+00 (-1, 0)   0.0031+03 (-2,-3)
    3.1-01     310-03 (1,2)  310000-06 (2,5)   310-03 ( 1, 2)     0.31+00 ( 0,-1)
    3.1-01                                    0.31+00 (-1,-1)  0.00031+03 (-2,-4)
Parameter:
numStr Eingabe-String
dir Richtung, in die das Komma verschoben werden soll (Util::LEFT oder Util::RIGHT)
digits Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci)
Rückgabe:
Ergebnis-String

void Util::shiftStr string &  str,
string  recruit,
Direction  dir = RIGHT
[static]
 

Funktion verchiebt alle Zeichen des Strings str um ein Zeichen nach links oder rechts, abhaengig von dir.

Dabei muss ein neues Zeichen recruit von der entsprechenden Seite nachruecken. Wenn das Zeichen "" ist, wird das auf der anderen Seite herausfallende Zeichen als Nachruecker verwendet.

Rückgabewerte:
str zu bearbeitender String, gleichzeitig Ergebnis-String
Parameter:
recruit nachrueckendes Zeichen
dir Richtung der Verschiebung (Util::LEFT, Util::RIGHT)

void Util::stripLine string &  line  )  [static]
 

Entfernt aus dem uebergebenen String fuehrende Leer- und Tabulatorzeichen, abschliessende Leerzeichen und Kommentare, die durch ein Kommentarzeichen (';') abgetrennt sind, und ersetzt mehrfache Leerzeichen durch nur eines.

Parameter:
line zu strippender String

string Util::stripLines string  str  )  [static]
 

Entfernt alle Kommentare (Kommentarsymbol ';') und fuehrende Leerzeichen/Tabulatoren einer Zeile aus dem String str und ersetzt alle Zeilenumbrueche durch ein Leerzeichen.

Vom String wird angenommen, dass er aus mehreren Zeilen besteht, die durch '
' voneinander getrennt sind. Die Funktion wird benoetigt, um die Programme des Casio fx-3600P von allen Kommentaren zu befreien und so aufzubereiten, dass das Programm ausgefuehrt werden kann.

Parameter:
str zu behandelnder String
Rückgabe:
der gestrippte String

string Util::stripTrailingOs const string &  numStr  )  [static]
 

Erwartet in numStr den String einer Zahl in SCI- oder FIX-Notation und entfernt endstaendige Nachkomma-Nullen der Mantisse.

Parameter:
numStr String mit der Zahl, deren Nullen entfernt werden sollen
Rückgabe:
Ergebnis-String

string Util::toLower const string &  str  )  [static]
 

Wandelt String in Kleinbuchstaben um.

Parameter:
str String, der umgewandelt werden soll
Rückgabe:
umgewandelter String

string Util::trimNumStr string  numStr,
int  maxLen
[static]
 

Haengt an numStr gegebenenfalls Dezimalpunkt an und bringt ihn rechtsbuendig auf maxLen Zeichen Laenge.

Beispiele mit maxLen = 10:

    "123"          3 => "      123."
    "0.12345678"  10 => "0.12345678"
    "-0.12345678" 11 => "-.12345678"
    "-12345678"    9 => "-12345678."
    "-12.345678"  10 => "-12.345678"
    "-0.123"       6 => "    -0.123"
    "-1.2345-12"  10 => "-1.2345-12"
Parameter:
numStr Eingabe-String
maxLen Laenge des Ergebnis-Strings
Rückgabe:
Ergebnis-String

string Util::trimStr int  num,
int  len = 15,
Direction  dir = LEFT,
char  fillChar = ' '
[static]
 

Liefert String mit len Zeichen Laenge zurueck, der num an der Position dir enthaelt.

Leerzeichen werden mit fillChar aufgefuellt.

Parameter:
num zu trimmende Zahl (int)
len Laenge des Ergebnisstrings
dir Position der Zahl im String: Util::LEFT, CENTER, RIGHT
fillChar Zeichen, mit dem aufgefuellt wird
Rückgabe:
Ergebnis-String

string Util::trimStr string  str,
int  len = 15,
Direction  dir = LEFT,
char  fillChar = ' '
[static]
 

Liefert String mit len Zeichen Laenge zurueck, der str an der Position dir enthaelt.

Leerzeichen werden mit fillChar aufgefuellt.

Parameter:
str zu trimmender String
len Laenge des Ergebnisstrings
dir Position des Strings im Ergebnis-String: Util::LEFT, Util::CENTER, Util::RIGHT
fillChar Zeichen, mit dem aufgefuellt wird
Rückgabe:
Ergebnis-String


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Mon Oct 10 19:54:32 2005 für Almetare von  doxygen 1.4.1