Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM
TEXT - Textové řetězce
Systém Litos se při práci s textovými řetězci snaží dodržovat následující dvě základní kritéria:
Namísto řetězců zakončených nulou se používají pouze texty s udanou délkou. Důvodem je především vyšší rychlost zpracování textu.
Jako znaková sada se přednostně používá kódování znaků UTF-8. Tento způsob kódování je nenáročný na paměť (národní znaky většiny zemí zvýší délku textu jen velmi málo), není závislý na pořadí bajtů (není třeba rozlišovat big-endian a little-endian) a obsáhne celou množinu znaků Unicode.
| Datové struktury | ||
| Datové struktury a makra | ||
| Konverze znaku | ||
| CharHexToBin | Konverze ASCII hexadecimálního znaku na číslo | |
| CharDecToBin | Konverze ASCII dekadického znaku na číslo | |
| Interní funkce | ||
| TextAttach | Připojení dat textového řetězce k proměnné textového řetězce (interní funkce) | |
| TextDetach | Odpojení dat textového řetězce od proměnné textového řetězce (interní funkce) | |
| TextNew | Vytvoření nových dat textového řetězce (interní funkce) | |
| TextResize | Změna velikosti dat textového řetězce (interní funkce) | |
| TextCopyWrite | Kopie dat textového řetězce před zápisem (interní funkce) | |
| TextEmpty | Vyprázdnění textového řetězce | |
| Inicializace řetězce | ||
| TextInit | Inicializace textového řetězce prázdným řetězcem | |
| TextInitChar | Inicializace textového řetězce jedním znakem | |
| TextInitBuf | Inicializace textového řetězce bufferem v kódu UTF-8 | |
| TextInitBufCP | Inicializace textového řetězce bufferem v dané kódové stránce | |
| TextInitText | Inicializace textového řetězce jiným textovým řetězcem | |
| TextTerm | Destrukce proměnné textového řetězce | |
| Přidání znaku | ||
| TextAddChar | Přidání znaku na konec textového řetězce | |
| TextAddByte | Přidání jednobajtového ASCII znaku na konec textového řetězce | |
| TextAddSpace | Přidání znaku mezery na konec textového řetězce | |
| Přidání čísla | ||
| TextAddDig | Přidání jedné číslice na konec textového řetězce | |
| TextAdd2Dig | Přidání dvou číslic na konec textového řetězce | |
| TextAddInt | Přidání neformátovaného celého čísla bez znaménka na konec textového řetězce | |
| TextAddIntSig | Přidání neformátovaného celého čísla se znaménkem na konec textového řetězce | |
| Přidání textu | ||
| TextAddBuf | Přidání textu z bufferu UTF-8 na konec textového řetězce | |
| TextAddBufCP | Přidání textu v dané kódové stránce na konec textového řetězce | |
| TextAddText | Přidání textu na konec textového řetězce | |
| Pozice v textu | ||
| TextLength | Zjištění délky textu v bajtech | |
| TextLengthChar | Zjištění délky textu ve znacích | |
| TextCheckOff | Kontrola platnosti offsetu bajtu | |
| TextPosToOff | Přepočet pozice znaku na bajtový offset | |
| TextOffToPos | Přepočet bajtového offsetu na pozici znaku | |
| Posun ukazatele | ||
| TextFirst | Posun ukazatele textu na první znak textu | |
| TextNext | Posun ukazatele textu na další znak textu | |
| TextLast | Posun ukazatele textu na poslední znak textu | |
| TextPrev | Posun ukazatele textu na předešlý znak textu | |
| Získání znaku | ||
| TextGetByte | Načtení bajtu z textu | |
| TextGetChar | Načtení znaku z textu | |
| TextGetFirst | Načtení prvního znaku z textu | |
| TextGetLast | Načtení posledního znaku z textu | |
| Zrušení | ||
| TextDelete | Zrušení části textu | |
| TextDelStart | Zrušení začátku textu | |
| TextDelFrom | Zrušení zbytku textu od dané pozice | |
| TextDelEnd | Zrušení konce textu | |
| TextDelChar | Zrušení znaku z textu | |
| TextDelFirst | Zrušení prvního znaku textu | |
| TextDelLast | Zrušení posledního znaku textu | |
| TextTrim | Ořezání textu zleva a zprava | |
| TextTrimLeft | Ořezání textu zleva | |
| TextTrimRight | Ořezání textu zprava | |
| TextTrimMid | Ořezání mezer a řídicích znaků z textu | |
| TextTrimList | Ořezání znaků z textu podle seznamu zakázaných znaků | |
| TextTrimUnList | Ořezání znaků z textu podle seznamu povolených znaků | |
| Část řetězce | ||
| TextLeft | Levá část textu | |
| TextRight | Pravá část textu | |
| TextFrom | Pravá část textu od dané pozice | |
| TextMid | Střední část textu | |
| Zápis textu | ||
| TextWrite | Zápis textu v kódu UTF-8 do bufferu | |
| TextWriteCP | Zápis textu do bufferu v dané kódové stránce | |
| Konverze písmen | ||
| TextSmall | Konverze textu na malá písmena | |
| TextCap | Konverze textu na velká písmena | |
| TextSmaCap | Konverze textu na malá/velká písmena (inverze) | |
| TextWords | Konverze textu na slova (první písmeno velké) | |
| Porovnání | ||
| TextEqu | Porovnání textů na shodu | |
| TextComp | Alfabetické porovnání textů | |
| Formátování čísla | ||
| TextAddFormHex | Přidání formátovaného hexadecimálního čísla na konec textového řetězce | |
| TextAddFormBin | Přidání formátovaného binárního čísla na konec textového řetězce | |
| TextAddFormOct | Přidání formátovaného oktalového čísla na konec textového řetězce | |
| TextAddFormUInt | Přidání formátovaného celého čísla bez znaménka na konec textového řetězce | |
| TextAddFormInt | Přidání formátovaného celého čísla se znaménkem na konec textového řetězce | |
| TextAddFormExp | Přidání formátovaného exponenciálního čísla na konec textového řetězce | |
| TextAddFormFlt | Přidání formátovaného desetinného čísla na konec textového řetězce | |
| TextAddFormMix | Přidání formátovaného smíšeného čísla na konec textového řetězce | |
| Formátování textu | ||
| TextAddFormat | Přidání formátovaného textu na konec textu | |
| TextAddFormatDW | Přidání formátovaného textu na konec textu s DWORD argumentem | |
| TextAddFormatF | Přidání formátovaného textu na konec textu s float argumentem | |
| Formátování data a času | ||
| TextAddDateTime | Přidání data/času na konec textu | |
| TextAddAbsTime | Přidání absolutního času na konec textu | |
| TextAddShortTime | Přidání času v krátkém tvaru na konec textu | |
| TextAddLongTime | Přidání času v dlouhém tvaru na konec textu | |
| TextAddShortDate | Přidání data v krátkém tvaru na konec textu | |
| TextAddLongDate | Přidání data v dlouhém tvaru na konec textu | |
| Vyhledávání | ||
| TextFindByteFirst, TextFindByte |
Vyhledání prvního/dalšího bajtu v textu | |
| TextFindWordFirst, TextFindWord |
Vyhledání prvního/dalšího slova v textu | |
| TextFindByteLast, TextFindByteRev |
Vyhledání posledního/předešlého bajtu v textu | |
| TextFindWordLast, TextFindWordRev |
Vyhledání posledního/předešlého slova v textu | |
| TextFindFirst, TextFind |
Vyhledání prvního/dalšího řetězce v textu | |
| TextFindLast, TextFindRev |
Vyhledání posledního/předešlého řetězce v textu | |
| TextFindCharFirst, TextFindChar |
Vyhledání prvního/dalšího znaku v textu | |
| TextFindCharLast, TextFindCharRev |
Vyhledání posledního/předešlého znaku v textu | |
| Vícejazyčný text | ||
| TextSubLangGet | Vyhledání textu pro daný jazyk a pod-jazyk | |
| TextLangGet | Vyhledání textu pro daný jazyk | |
| TextLangNear | Vyhledání textu pro nejbližší jazyk | |
| TextLangDef | Vyhledání textu pro uživatelský implicitní jazyk | |