Obsah / Utility / TEXT / TextInitBufCP
Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM
TextInitBufCP - Inicializace textového řetězce bufferem v dané kódové stránce
Funkce TextInitBufCP inicializuje textovou proměnnou textem z bufferu v dané kódové stránce.
|
Funkce TextInitBufCP inicializuje novou textovou proměnnou, na niž ukazuje ukazatel v registru EBX, textem z bufferu v dané kódové stránce. Registr ESI obsahuje ukazatel na buffer s textem, registr ECX obsahuje délku textu v bufferu v bajtech, registr AX je číslo kódové stránky a registr EDX je náhradní znak pro neplatný znak. Je-li náhradní znak nulový, použije se implicitní náhradní znak (zpravidla znak podobný vzhledově).
Pokud dojde k chybě paměti, funkce navrátí příznak chyby CY a textová proměnná bude inicializována na prázdný text.
|
Po úschově registrů se ukazatel v textové proměnné inicializuje na prázdný text EmptyTextData. Prázdný text se navrátí v případě chyby.
|
Pomocí funkce CharTrans se zjistí velikost textu v cílovém bufferu po provedení konverze do kódu UTF-8. Pomocí funkce TextNew je alokován nový datový buffer podle zjištěné délky textu. Pokud nastane chyba paměti, funkce se ukončí s chybovým kódem CY a text zůstane prázdný.
|
Funkcí CharTrans se provede konverze textu ze zdrojového bufferu (s danou zdrojovou ködovou stránkou) do cílového bufferu (v kódu UTF-8). Ukládací adresa je zjištěna z ukazatele na data textové proměnné (načteného z textové proměnné [EBX]) posunutého na začátek textu v datech textového řetězce.
Obsah / Utility / TEXT / TextInitBufCP