Konwersje między łańcuchem a różnymi typami
[Base Module]

Functions

int common::HexDigitToNumber (char Ch)
 Zwraca liczbowy odpowiednik cyfry szesnastkowej.
int common::HexDigitToNumber (wchar_t Ch)
template<typename T >
void common::UintToStr (tstring *Out, T x, uint4 Base=10, bool UpperCase=true)
 Konwersja liczby całkowitej na łańcuch.
template<typename T >
void common::IntToStr (tstring *Out, T x, uint4 Base=10, bool UpperCase=true)
template<typename T >
bool common::_CharToDigit (T *Digit, tchar ch)
 Konwertuje znak cyfry w dowolnym systemie ('0'..'9', 'A'..'Z', 'a'..'z') na liczbę, zwraca false jeśli błąd.
template<typename T >
int common::StrToUint (T *Number, const tstring &str, unsigned Base=10)
 Konwersja łańcucha na liczbę całkowitą.
template<typename T >
int common::StrToInt (T *Number, const tstring &str, unsigned Base=10)
template<typename T >
tstring common::IntToStrR (T x, int base=10, bool UpperCase=true)
template<typename T >
tstring common::UintToStrR (T x, int base=10, bool UpperCase=true)
void common::Size_tToStr (tstring *Out, size_t x, size_t Base=10, bool UpperCase=true)
tstring common::Size_tToStrR (size_t x, size_t Base=10, bool UpperCase=true)
template<typename T >
void common::UintToStr2 (tstring *Out, T x, unsigned Length, int base=10)
 Konwersja liczby na łańcuch o minimalnej podanej długości.
template<typename T >
void common::IntToStr2 (tstring *Out, T x, unsigned Length, int base=10)
template<typename T >
tstring common::UintToStr2R (T x, unsigned Length, int Base=10)
template<typename T >
tstring common::IntToStr2R (T x, unsigned Length, int Base=10)
void common::CharToStr (tstring *Out, tchar ch)
 Konwertuje znak na łańcuch, jako że automatycznie to się niestety nie odbywa.
tstring common::CharToStrR (tchar ch)
void common::DoubleToStr (tstring *Out, double x, char Mode= 'g', int Precision=6)
 Konwersja liczb zmiennoprzecinkowych na łańcuch.
void common::FloatToStr (tstring *Out, float x, char Mode= 'g', int Precision=6)
tstring common::DoubleToStrR (double x, char Mode= 'g', int Precision=6)
tstring common::FloatToStrR (float x, char Mode= 'g', int Precision=6)
int common::StrToDouble (double *out, const tstring &s)
 Konwersja łańcucha na liczbę zmiennoprzecinkową.
int common::StrToFloat (float *out, const tstring &s)
void common::BoolToStr (tstring *Out, bool x, char mode= 'f')
 Konwertuje wartość logiczną na łańcuch.
tstring common::BoolToStrR (bool x, char mode= 'f')
bool common::StrToBool (bool *result, const tstring &s)
 Konwertuje łańcuch na wartość logiczną.
void common::PtrToStr (tstring *Out, const void *p)
 Konwertuje wskaźnik na łańcuch 8 znaków zapisany szesnastkowo.
tstring common::PtrToStrR (const void *p)
template<typename T >
void common::SizeToStr (tstring *str, T size, bool Space, int Precision)
 Liczba bajtów na łańcuch z rozmiarem np. "1 B", "10.5 kB".
template<typename T >
tstring common::SizeToStrR (T Size, bool Space, int Precision)

Variables

const tchar common::_DIGITS_L []
const tchar common::_DIGITS_U []

Detailed Description


Function Documentation

template<typename T >
bool common::_CharToDigit ( T *  Digit,
tchar  ch 
) [inline]

Konwertuje znak cyfry w dowolnym systemie ('0'..'9', 'A'..'Z', 'a'..'z') na liczbę, zwraca false jeśli błąd.

void common::BoolToStr ( tstring Out,
bool  x,
char  mode = 'f' 
)

Konwertuje wartość logiczną na łańcuch.

Parameters:
mode,: 
  • '0' : 0 / 1
  • 'f' : false / true
  • 'F' : False / True
  • 'U' : FALSE / TRUE
  • 'g' : f / t
  • 'G' : F / T
tstring common::BoolToStrR ( bool  x,
char  mode = 'f' 
) [inline]
void common::CharToStr ( tstring Out,
tchar  ch 
) [inline]

Konwertuje znak na łańcuch, jako że automatycznie to się niestety nie odbywa.

tstring common::CharToStrR ( tchar  ch  )  [inline]
void common::DoubleToStr ( tstring Out,
double  x,
char  Mode = 'g',
int  Precision = 6 
)

Konwersja liczb zmiennoprzecinkowych na łańcuch.

Parameters:
Mode,: 
  • 'e' : -0.12345e-001
  • 'E' : -0.12345E-001
  • 'f' : -0.12345
  • 'g' : optimum ('e', 'f')
  • 'G' : optimum ('E', 'f')
Precision 0..20
tstring common::DoubleToStrR ( double  x,
char  Mode = 'g',
int  Precision = 6 
) [inline]
void common::FloatToStr ( tstring Out,
float  x,
char  Mode = 'g',
int  Precision = 6 
)
tstring common::FloatToStrR ( float  x,
char  Mode = 'g',
int  Precision = 6 
) [inline]
int common::HexDigitToNumber ( wchar_t  Ch  )  [inline]
int common::HexDigitToNumber ( char  Ch  )  [inline]

Zwraca liczbowy odpowiednik cyfry szesnastkowej.

Jeśli błąd, zwraca 0xFF. Akceptuje zarówno małe, jak i duże litery. (Dwie wersje tej funkcji - osobno dla ANSI i Unicode - są potrzebne w Stream - HexDecoder.)

template<typename T >
void common::IntToStr ( tstring Out,
x,
uint4  Base = 10,
bool  UpperCase = true 
) [inline]
template<typename T >
void common::IntToStr2 ( tstring Out,
x,
unsigned  Length,
int  base = 10 
) [inline]
template<typename T >
tstring common::IntToStr2R ( x,
unsigned  Length,
int  Base = 10 
) [inline]
template<typename T >
tstring common::IntToStrR ( x,
int  base = 10,
bool  UpperCase = true 
) [inline]
void common::PtrToStr ( tstring Out,
const void *  p 
)

Konwertuje wskaźnik na łańcuch 8 znaków zapisany szesnastkowo.

tstring common::PtrToStrR ( const void *  p  )  [inline]
void common::Size_tToStr ( tstring Out,
size_t  x,
size_t  Base = 10,
bool  UpperCase = true 
) [inline]
tstring common::Size_tToStrR ( size_t  x,
size_t  Base = 10,
bool  UpperCase = true 
) [inline]
template<typename T >
void common::SizeToStr ( tstring str,
size,
bool  Space,
int  Precision 
) [inline]

Liczba bajtów na łańcuch z rozmiarem np. "1 B", "10.5 kB".

Jako T uzywac uint1, uint2, uint4, uint8 lub int ale na pewno wartości dodaniej.

Parameters:
Space czy między liczbę a jednostkę dawać spację
Precision ilość cyfr po przecinku (może być też 0)
template<typename T >
tstring common::SizeToStrR ( Size,
bool  Space,
int  Precision 
) [inline]
bool common::StrToBool ( bool *  result,
const tstring s 
)

Konwertuje łańcuch na wartość logiczną.

  • Dozwolone wszelkie wartości jak w BoolToStr.
  • Błąd: zwraca false.
int common::StrToDouble ( double *  out,
const tstring s 
)

Konwersja łańcucha na liczbę zmiennoprzecinkową.

  • W przypadku błędu składni zwracają wartość != 0.
  • Błędy zakresu nie są sprawdzane - wynik niezdefiniowany.
int common::StrToFloat ( float *  out,
const tstring s 
)
template<typename T >
int common::StrToInt ( T *  Number,
const tstring str,
unsigned  Base = 10 
) [inline]
template<typename T >
int common::StrToUint ( T *  Number,
const tstring str,
unsigned  Base = 10 
) [inline]

Konwersja łańcucha na liczbę całkowitą.

Returns:
Zwraca:
  • 0 - sukces
  • -1 - błąd składni łańcucha
  • -2 - przekroczenie zakresu
template<typename T >
void common::UintToStr ( tstring Out,
x,
uint4  Base = 10,
bool  UpperCase = true 
) [inline]

Konwersja liczby całkowitej na łańcuch.

Parameters:
Base musi być z zakresu 2..36
template<typename T >
void common::UintToStr2 ( tstring Out,
x,
unsigned  Length,
int  base = 10 
) [inline]

Konwersja liczby na łańcuch o minimalnej podanej długości.

Zostanie do tej długości uzupełniony zerami.

template<typename T >
tstring common::UintToStr2R ( x,
unsigned  Length,
int  Base = 10 
) [inline]
template<typename T >
tstring common::UintToStrR ( x,
int  base = 10,
bool  UpperCase = true 
) [inline]

Variable Documentation

Starałem się zagwarantować w Windows (w Linux jeszcze nie - może kiedyś...), żeby konwersje zawsze działały tak samo niezależnie od locale ustawionego w bibliotece standardowej C (funkcja setlocale), C++ (klasa locale) czy WinAPI (funkcja SetThreadLocale). Szczególnie konwersje między liczbą zmiennoprzecinkową a łańcuchem zawsze używają kropki, a nie przecinka.


Generated on Wed Dec 16 20:44:53 2009 for CommonLib by  doxygen 1.6.1