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 |