Obsah / Utility / TEXT / TextTrimRight
Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM
TextTrimRight - Ořezání textu zprava
Funkce TextTrimRight odstraní nevýznamné mezery a řídicí znaky (tj. znaky s kódem 32 a menším) z konce textu.
|
Na vstupu funkce obsahuje registr EBX ukazatel na textovou proměnnou. V případě chyby paměti funkce navrátí příznak chyby CY.
|
Po úschově registrů se připraví do registru ESI ukazatel na konec textu řetězce (na poslední bajt) a do registru ECX délka textu v bajtech. V případě nulové délky textu se funkce ihned ukončí, příznak chyby je přitom vynulován NC.
|
Textový řetězec se prochází od konce bajt po bajtu a vyhledává se první platný znak textu, tj. bajt s hodnotou vyšší než 32. Využívá se přitom skutečnosti, že při kódování textu UTF-8 jsou znaky s hodnotou 0 až 7Fh uloženy přímo jako jednobajtové kódy. Všechny ostatní bajty kódu UTF-8 jsou vždy 80h a více, proto postačí vyhledávat přímo bajty s hodnotou 0 až 32 bez dalšího rozlišování kódu UTF-8.
|
Po nalezení prvního platného znaku (s kódem vyšším než 32) nebo po dosažení začátku řetězce je do registru ECX připraven počet přeskočených nevýznamných znaků. Je-li tento počet nenulový, jsou nevýznamné znaky zrušeny funkcí TextDelEnd.
Obsah / Utility / TEXT / TextTrimRight