Łańcuchy
[Base Module]

Classes

class  common::StringNaturalCompare
 Klasa do porównywania w porządku naturalnym. More...
class  common::StrLessI
 Predykat do porównywania łańcuchów bez rozróżniania wielkości liter. More...
class  common::StrGreaterI
 Predykat do porównywania łańcuchów bez rozróżniania wielkości liter. More...

Modules

 Sortowanie naturalne
 C-style strings
 Obsługa Unicode
 Konwersje łańcuchów Unicode

Enumerations

enum  common::EOLMODE { common::EOL_NONE, common::EOL_CRLF, common::EOL_LF, common::EOL_CR }
 

Rodzaje znaków końca wiersza.

More...
enum  common::CHARSET {
  common::CHARSET_NONE = 0, common::CHARSET_WINDOWS, common::CHARSET_ISO, common::CHARSET_IBM,
  common::CHARSET_UTF8
}
 

Strona kodowa polskich znakow.

More...

Functions

bool common::CharIsAlphaNumeric (tchar ch)
 Zwraca true, jesli znak jest alfanumeryczny (litera lub cyfra) wg ustawień systemu.
bool common::CharIsAlpha (tchar ch)
 Zwraca true, jesli znak jest litera.
bool common::CharIsDigit (tchar ch)
 Zwraca true, jesli znak jest cyfrą dziesietną.
bool common::CharIsHexDigit (tchar ch)
 Zwraca true, jeśli znak jest cyfrą szesnastkową.
bool common::CharIsLower (tchar ch)
 Zwraca true, jesli znak jest mala litera.
bool common::CharIsUpper (tchar ch)
 Zwraca true, jesli znak jest duza litera.
bool common::CharIsWhitespace (char ch)
 Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem wg systemu.
bool common::CharIsWhitespace (wchar_t ch)
bool common::CharIsWhitespace_f (tchar ch)
 Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem.
size_t common::StrStrI (const tstring &Str, const tstring &SubStr, size_t Count=0xffffffff)
 Szuka w łańcuchu Str podłańcucha SubStr, bez rozróżniania wielkości liter.
const tcharcommon::StrStrI (const tchar *Str, const tchar *SubStr, size_t Count=0xffffffff)
void common::ReverseString (tstring *s)
 Odwraca łańcuch w miejscu.
void common::Trim (tstring *s)
 Obcina białe znaki z początku i końca łańcucha w miejscu.
void common::Trim (tstring *Out, const tstring &s)
 Obcina białe znaki z początku i końca łańcucha.
tchar common::CharToLower (tchar ch)
 Jeśli to litera, konwertuje na małą.
tchar common::CharToUpper (tchar ch)
 Jeśli to litera, konwertuje na dużą.
void common::LowerCase (tstring *s)
 Konwertuje łańcuch na małe litery.
void common::LowerCase (tstring *Out, const tstring &s)
void common::UpperCase (tstring *s)
 Konwertuje łańcuch na duże.
void common::UpperCase (tstring *Out, const tstring &s)
bool common::Charset_WindowsSpecialChar (char a_c, string *a_s)
 Zmienia znak specjalny kodowania Windows-1250 na odpowiednik normalny.
char common::Charset_Convert_Char (char a_c, CHARSET a_Charset1, CHARSET a_Charset2)
 Zmienia znak z jednej strony kodowej na druga lub pozostawia bez zmian.
void common::Charset_Convert (string *out, const string &s, CHARSET Charset1, CHARSET Charset2)
 Konwertuje lancuch na podana strone kodowa.
void common::Rot13 (tstring *InOut)
 Szyforowanie/deszyfrowanie algorytmem ROT13.
void common::Rot13 (tstring *Out, const tstring &In)
void common::EolModeToStr (tstring *Out, EOLMODE EolMode)
 Rodzaj znaku końca wiersza na odpowiadający mu znak (lub znaki).
void common::Replace (tstring *result, const tstring &s, const tstring &s1, const tstring &s2)
 Zamienia w łańcuchu wszystkie wystąpienia jedego podłańcucha na drugi.
void common::Replace (tstring *Out, const tstring &s, tchar Ch1, tchar Ch2)
 Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2.
void common::Replace (tstring *InOut, tchar Ch1, tchar Ch2)
 Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2 w miejscu.
void common::ReplaceEOL (tstring *result, const tstring &s, EOLMODE EOLMode)
 Zmienia wszelkiego rodzaju znaki końca wiersza w poddanym tekście na takie same - wg podanego trybu.
void common::NormalizeWhitespace (tstring *result, const tstring &s)
 Zamienia wszystkie odstępy na pojedyncze spacje.
void common::DuplicateString (tstring *Out, const tstring &s, size_t count)
 Zwraca łańcuch powtórzony podaną liczbę razy.
void common::RightStr (tstring *Out, const tstring &s, size_t Length)
 Zwraca podłańcuch z prawej strony.
size_t common::SubstringCount (const tstring &str, const tstring &substr)
 Zwraca liczbę wystąpień podłańcucha.
int common::StrCmpI (const tstring &s1, const tstring &s2, size_t Count=0xffffffff)
 Porównuje dwa łańcuchy bez rozróżniania wielkości liter.
int common::StrCmpI (const tchar *s1, const tchar *s2, size_t Count=0xffffffff)
int common::SubStrCmp (const tstring &s1, size_t off1, const tstring &s2, size_t off2, size_t length)
 Zwraca true, jeśli podfragmenty podanych łańcuchów są identyczne.
int common::SubStrCmpI (const tstring &s1, size_t off1, const tstring &s2, size_t off2, size_t length)
 Zwraca true, jeśli podfragmenty podanych łańcuchów są identyczne nie rozróżniając wielkości liter.
bool common::ContainsEOL (const tstring &s)
 Czy łańcuch zawiera znaki końca wiersza?
bool common::StrBegins (const tstring &s, const tstring &sub, size_t Begin=0)
 Zwraca true, jesli podany lancuch zaczyna sie od podanego podlancucha.
bool common::StrBeginsI (const tstring &s, const tstring &sub, size_t Begin=0)
 Zwraca true, jesli podany lancuch zaczyna sie od podanego podlancucha, bez rozrozniania wielkosci liter.
bool common::StrEnds (const tstring &s, const tstring &Sub)
 Zwraca true, jeśli podany łańcuch kończy się podanym podłańcuchem.
bool common::StrEndsI (const tstring &s, const tstring &Sub)
 Zwraca true, jeśli podany łańcuch kończy się podanym podłańcuchem, bez rozrozniania wielkosci liter.
bool common::Split (const tstring &s, const tstring &delimiter, tstring *out, size_t *index)
 Kolejne wywołania rozdzielają łańcuch na kolejne elementy oddzielone w jego treści określonym podłańcuchem.
bool common::SplitFirstOf (const tstring &s, const tstring &delimiters, tstring *out, size_t *index)
 Działa jak Split(), ale łańcuchem rozdzielającym jest każdy dowolny znak z delimiters.
void common::Split (STRING_VECTOR *Out, const tstring &s, const tstring &Delimiter)
 Dzieli łańcuch na części i zwraca je jako wektor.
bool common::SplitEOL (const tstring &s, tstring *out, size_t *index)
 Kolejne wywołania rozdzielają łańcuch na kolejne elementy oddzielone w jego treści którąś z sekwencji uznawaną za koniec wiersza (czyli na kolejne wiersze).
bool common::SplitQuery (const tstring &s, tstring *out, size_t *index)
 Kolejne wywołania rozdzielają łańcuch na elementy oddzielone odstępami uwzględniając ciągi obięte w cudzysłowy "" jako całość.
bool common::ValidateWildcard (const tstring &Mask, const tstring &S, bool CaseSensitive=true, size_t MaskOff=0, size_t SOff=0)
 Sprawdza, czy podany łancuch jest zgodny z podaną maską mogącą zawierać znaki wieloznaczne.
float common::FineSearch (const tstring &SubStr, const tstring &Str)
 Zwraca zmiennoprzecinkową trafność wyszukiwania stringa SubStr w stringu Str.
size_t common::LevenshteinDistance (const tstring &s1, const tstring &s2)
 Odległość edycyjna między dwoma łańcuchami.
size_t common::LevenshteinDistanceI (const tstring &s1, const tstring &s2)
 Odległość edycyjna między dwoma łańcuchami bez uwzględniania wielkości liter.

Variables

const tstring common::EMPTY_STRING
 Łańcuch pusty - do wykorzystania aby można było pobierać do niego referencje itp.
const tchar *const common::EOL
 Standardowy łańcuch końca wiersza zależny od systemu.

Detailed Description


Enumeration Type Documentation

Strona kodowa polskich znakow.

Enumerator:
CHARSET_NONE 

Brak polskich liter.

CHARSET_WINDOWS 

Strona kodowa Windows-1250 (używana w GUI Windows).

CHARSET_ISO 

Strona kodowa ISO-8859-2 (Latin-2) (używana w Linuksie).

CHARSET_IBM 

Strona kodowa IBM (CP852) (używana na konsoli Windows).

CHARSET_UTF8 

Strona kodowa UTF-8.

Rodzaje znaków końca wiersza.

Enumerator:
EOL_NONE 

Podczas konwersji pozostawienie bez zmian.

EOL_CRLF 

13 i 10 (Windows)

EOL_LF 

10 (Unix)

EOL_CR 

13 (Mac)


Function Documentation

bool common::CharIsAlpha ( tchar  ch  ) 

Zwraca true, jesli znak jest litera.

bool common::CharIsAlphaNumeric ( tchar  ch  ) 

Zwraca true, jesli znak jest alfanumeryczny (litera lub cyfra) wg ustawień systemu.

bool common::CharIsDigit ( tchar  ch  )  [inline]

Zwraca true, jesli znak jest cyfrą dziesietną.

bool common::CharIsHexDigit ( tchar  ch  )  [inline]

Zwraca true, jeśli znak jest cyfrą szesnastkową.

  • Akceptuje małe i duże litery.
bool common::CharIsLower ( tchar  ch  ) 

Zwraca true, jesli znak jest mala litera.

bool common::CharIsUpper ( tchar  ch  ) 

Zwraca true, jesli znak jest duza litera.

bool common::CharIsWhitespace ( wchar_t  ch  ) 
bool common::CharIsWhitespace ( char  ch  ) 

Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem wg systemu.

Dwie wersje tej funkcji - ANSI i Unicode - są potrzebne dla Stream - HexDecoder.

bool common::CharIsWhitespace_f ( tchar  ch  )  [inline]

Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem.

Czyli jednym ze znakow:

  • 0x09 (9) "\\t" - tabulacja
  • 0x0A (10) "\\n" - znak konca wiersza
  • 0x0D (13) "\\r" - znak konca wiersza
  • "\\v" - tabulacja pionowa
  • 0x20 (32) " " - spacja
void common::Charset_Convert ( string *  out,
const string &  s,
CHARSET  Charset1,
CHARSET  Charset2 
)

Konwertuje lancuch na podana strone kodowa.

Parameters:
[out] out nie moze byc tym samym lancuchem, co s.
char common::Charset_Convert_Char ( char  a_c,
CHARSET  a_Charset1,
CHARSET  a_Charset2 
)

Zmienia znak z jednej strony kodowej na druga lub pozostawia bez zmian.

Nie obsluguje stron kodowych wielobajtowych, tzn. UTF-8 (wynik jest wtedy niezdefiniowany).

bool common::Charset_WindowsSpecialChar ( char  a_c,
string *  a_s 
)

Zmienia znak specjalny kodowania Windows-1250 na odpowiednik normalny.

Jesli podany znak jest jednym ze znakow specjalnych Windows-1250, zwraca przez a_s jego normalny odpowiednik (można podać wskaźnik 0) i zwraca true. Jeśli to nie jest taki znak, zwraca false.

tchar common::CharToLower ( tchar  ch  ) 

Jeśli to litera, konwertuje na małą.

  • Nie obsługuje wielobajtowych stron kodowych (UTF-8).
tchar common::CharToUpper ( tchar  ch  ) 

Jeśli to litera, konwertuje na dużą.

  • Nie obsługuje wielobajtowych stron kodowych (UTF-8).
bool common::ContainsEOL ( const tstring s  ) 

Czy łańcuch zawiera znaki końca wiersza?

void common::DuplicateString ( tstring Out,
const tstring s,
size_t  count 
)

Zwraca łańcuch powtórzony podaną liczbę razy.

void common::EolModeToStr ( tstring Out,
EOLMODE  EolMode 
)

Rodzaj znaku końca wiersza na odpowiadający mu znak (lub znaki).

float common::FineSearch ( const tstring SubStr,
const tstring Str 
)

Zwraca zmiennoprzecinkową trafność wyszukiwania stringa SubStr w stringu Str.

Zaawansowany algorytm, wymyślony przeze mnie dawno temu. Bierze pod uwagę rzeczy takie jak:

  1. ile razy podłańcuch występuje
  2. czy pasuje wielkość liter
  3. długość łańcucha i podłańcucha
  4. czy to całe słowo
  5. czy to cały łańcuch.
size_t common::LevenshteinDistance ( const tstring s1,
const tstring s2 
)

Odległość edycyjna między dwoma łańcuchami.

Złożoność: O( s1.length * s2.length ). Im mniejsza, tym łańcuchy bardziej podobne. Jeśli identyczne, zwraca 0.

size_t common::LevenshteinDistanceI ( const tstring s1,
const tstring s2 
)

Odległość edycyjna między dwoma łańcuchami bez uwzględniania wielkości liter.

Złożoność: O( s1.length * s2.length ). Im mniejsza, tym łańcuchy bardziej podobne. Jeśli identyczne, zwraca 0.

void common::LowerCase ( tstring Out,
const tstring s 
) [inline]
void common::LowerCase ( tstring s  ) 

Konwertuje łańcuch na małe litery.

  • Nie obsługuje wielobajtowych stron kodowych (UTF-8).
void common::NormalizeWhitespace ( tstring result,
const tstring s 
)

Zamienia wszystkie odstępy na pojedyncze spacje.

void common::Replace ( tstring InOut,
tchar  Ch1,
tchar  Ch2 
)

Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2 w miejscu.

void common::Replace ( tstring Out,
const tstring s,
tchar  Ch1,
tchar  Ch2 
)

Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2.

void common::Replace ( tstring result,
const tstring s,
const tstring s1,
const tstring s2 
)

Zamienia w łańcuchu wszystkie wystąpienia jedego podłańcucha na drugi.

Result musi być oczywiście, jak w każdej takiej funkcji, innym łańcuchem niż s.

void common::ReplaceEOL ( tstring result,
const tstring s,
EOLMODE  EOLMode 
)

Zmienia wszelkiego rodzaju znaki końca wiersza w poddanym tekście na takie same - wg podanego trybu.

void common::ReverseString ( tstring s  ) 

Odwraca łańcuch w miejscu.

void common::RightStr ( tstring Out,
const tstring s,
size_t  Length 
)

Zwraca podłańcuch z prawej strony.

void common::Rot13 ( tstring Out,
const tstring In 
) [inline]
void common::Rot13 ( tstring InOut  ) 

Szyforowanie/deszyfrowanie algorytmem ROT13.

void common::Split ( STRING_VECTOR Out,
const tstring s,
const tstring Delimiter 
)

Dzieli łańcuch na części i zwraca je jako wektor.

bool common::Split ( const tstring s,
const tstring delimiter,
tstring out,
size_t *  index 
)

Kolejne wywołania rozdzielają łańcuch na kolejne elementy oddzielone w jego treści określonym podłańcuchem.

Parameters:
[out] out 
[in,out] index 
bool common::SplitEOL ( const tstring s,
tstring out,
size_t *  index 
)

Kolejne wywołania rozdzielają łańcuch na kolejne elementy oddzielone w jego treści którąś z sekwencji uznawaną za koniec wiersza (czyli na kolejne wiersze).

bool common::SplitFirstOf ( const tstring s,
const tstring delimiters,
tstring out,
size_t *  index 
)

Działa jak Split(), ale łańcuchem rozdzielającym jest każdy dowolny znak z delimiters.

bool common::SplitQuery ( const tstring s,
tstring out,
size_t *  index 
)

Kolejne wywołania rozdzielają łańcuch na elementy oddzielone odstępami uwzględniając ciągi obięte w cudzysłowy "" jako całość.

bool common::StrBegins ( const tstring s,
const tstring sub,
size_t  Begin = 0 
)

Zwraca true, jesli podany lancuch zaczyna sie od podanego podlancucha.

bool common::StrBeginsI ( const tstring s,
const tstring sub,
size_t  Begin = 0 
)

Zwraca true, jesli podany lancuch zaczyna sie od podanego podlancucha, bez rozrozniania wielkosci liter.

int common::StrCmpI ( const tchar s1,
const tchar s2,
size_t  Count = 0xffffffff 
)
int common::StrCmpI ( const tstring s1,
const tstring s2,
size_t  Count = 0xffffffff 
)

Porównuje dwa łańcuchy bez rozróżniania wielkości liter.

Zwraca liczbę ujemną, 0 lub dodatnią zależnie od wyniku porównania.

bool common::StrEnds ( const tstring s,
const tstring Sub 
)

Zwraca true, jeśli podany łańcuch kończy się podanym podłańcuchem.

bool common::StrEndsI ( const tstring s,
const tstring Sub 
)

Zwraca true, jeśli podany łańcuch kończy się podanym podłańcuchem, bez rozrozniania wielkosci liter.

const tchar* common::StrStrI ( const tchar Str,
const tchar SubStr,
size_t  Count = 0xffffffff 
)
size_t common::StrStrI ( const tstring Str,
const tstring SubStr,
size_t  Count = 0xffffffff 
)

Szuka w łańcuchu Str podłańcucha SubStr, bez rozróżniania wielkości liter.

Zwraca indeks/wskaźnik do pierwszego znaku pierwszego znalezionego wystąpienia wewnątrz str. Jesli nie znaleziono, zwraca MAXUINT4.

int common::SubStrCmp ( const tstring s1,
size_t  off1,
const tstring s2,
size_t  off2,
size_t  length 
)

Zwraca true, jeśli podfragmenty podanych łańcuchów są identyczne.

int common::SubStrCmpI ( const tstring s1,
size_t  off1,
const tstring s2,
size_t  off2,
size_t  length 
)

Zwraca true, jeśli podfragmenty podanych łańcuchów są identyczne nie rozróżniając wielkości liter.

size_t common::SubstringCount ( const tstring str,
const tstring substr 
)

Zwraca liczbę wystąpień podłańcucha.

void common::Trim ( tstring Out,
const tstring s 
)

Obcina białe znaki z początku i końca łańcucha.

void common::Trim ( tstring s  ) 

Obcina białe znaki z początku i końca łańcucha w miejscu.

void common::UpperCase ( tstring Out,
const tstring s 
) [inline]
void common::UpperCase ( tstring s  ) 

Konwertuje łańcuch na duże.

  • Nie obsługuje wielobajtowych stron kodowych (UTF-8).
bool common::ValidateWildcard ( const tstring Mask,
const tstring S,
bool  CaseSensitive = true,
size_t  MaskOff = 0,
size_t  SOff = 0 
)

Sprawdza, czy podany łancuch jest zgodny z podaną maską mogącą zawierać znaki wieloznaczne.

'?' zastępuje dowolny jeden znak, '*' zastępuje dowolną liczbę (także 0) dowolnych znaków.


Variable Documentation

Łańcuch pusty - do wykorzystania aby można było pobierać do niego referencje itp.

const tchar* const common::EOL

Standardowy łańcuch końca wiersza zależny od systemu.


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