Tvůrce webu je i pro tebe! Postav třeba web. Bez grafika. Bez kodéra. Hned.
wz

Obsah / Utility / TEXT / TextAddShortDate

Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM


TextAddShortDate - Přidání data v krátkém tvaru na konec textu

Funkce TextAddShortDate přidá formátované datum v krátkém tvaru na konec textu (tj. např. "31.12.08"). Datum je zadáno jako absolutní čas v registrovém páru EDX:EAX (tj. počet stovek nanosekund od 1.1. roku 1).


; -----------------------------------------------------------------------------
;                     Add short date format to end of text
; -----------------------------------------------------------------------------
; INPUT:	EDX:EAX = absolute time (100-nanosec from 1/1/1 BCE 0:00)
;		EBX = pointer to destination TEXT variable
;		ECX = pointer to nationality descriptor NATIONAL (NULL=default)
; OUTPUT:	CY = memory error (text not changed)
; -----------------------------------------------------------------------------

Na vstupu funkce obsahuje registrový pár EDX:EAX absolutní čas, tj, počet stovek nanosekund od 1.1. roku 1. Registr EBX obsahuje ukazatel na cílovou textovou proměnnou, do které se zformátovaný text uloží. Registr ECX obsahuje ukazatel na popisovač národnostních informací NATIONAL. Je-li ukazatel nulový (tj. obsahuje NULL), použije se implicitní popisovač národnostních informací. V případě chyby paměti je navrácen chybový příznak CY a obsah cílové textové proměnné se nezmění.


; ------------- Push registers

TextAddShrtDate:push	ecx		; push ECX
		push	esi		; push ESI

; ------------- Det default nationality (-> ECX)

		or	ecx,ecx		; default nationality?
		jnz	TextAddShrtDat2	; nationality is valid
		DEFAULT_NAT ecx		; ECX <- get default nationality

Po úschově registrů se do registru ECX připraví implicitní popisovač národnostních informací pomocí funkce DEFAULT_NAT v případě, že ukazatel byl při vstupu do funkce nulový.


; ------------- Format text

TextAddShrtDat2:lea	esi,[ecx+NAT_ShortDate] ; ESI <- short date string
		call	TextAddAbsTime	; format text

; ------------- Pop registers

		pop	esi		; pop ESI
		pop	ecx		; pop ECX
		ret

Text je zformátován pomocí funkce TextAddAbsTime, jako formátovací řetězec je do registru ESI připraven ukazatel na formátovací řetězec data v krátkém tvaru (tj. "d/M/yy").


Obsah / Utility / TEXT / TextAddShortDate