|
|
| Line 1: |
Line 1: |
| '''Decimal to Hex Macro using XMLVars'''
| | work in progress ....... |
| | |
| <Macro Name="HexDigit">
| |
| int d 10 >=
| |
| if{ 55 + chr 'HexDigit' l31 scat (>C:XMLVARS:SearchVarName, string) (>C:XMLVARS:StringValue, string) }
| |
| els{ 'HexDigit' l31 scat (>C:XMLVARS:SearchVarName, string) (>C:XMLVARS:StringValue, string) }
| |
| </Macro>
| |
| | |
| <Macro Name="Dec2Hex">
| |
| s30
| |
| '@1' (>C:XMLVARS:StoreVarName, string) <nowiki>''</nowiki> '@1' (>C:XMLVARS:SearchVarName, string) (>C:XMLVARS:StringValue, string)
| |
| 0 sp31
| |
| :300
| |
| l31 ++ s31
| |
| 'HexDigit' l31 scat (>C:XMLVARS:StoreVarName, string)
| |
| l30 16 % @HexDigit
| |
| l30 16 / int s30 0 == if{ g301 } els{ g300 }
| |
| :301
| |
| '@1' (>C:XMLVARS:SearchVarName, string) (C:XMLVARS:StringValue, string)
| |
| 'HexDigit' l31 scat (>C:XMLVARS:SearchVarName, string) (C:XMLVARS:StringValue, string) scat
| |
| '@1' (>C:XMLVARS:SearchVarName, string) (>C:XMLVARS:StringValue, string)
| |
| <nowiki>''</nowiki> 'HexDigit' l31 scat (>C:XMLVARS:SearchVarName, string) (>C:XMLVARS:StringValue, string)
| |
| l31 -- s31 0 != if{ g301 }
| |
| </Macro>
| |
| | |
| '''Example:'''
| |
| | |
| To convert decimal 13516816 to hexadecimal and write it to an XMLVar string variable arbitrarily named 'HexExample':
| |
| | |
| 13516816 @Dec2Hex(HexExample)
| |
| | |
| XMLVar HexExample now contains the string CE4010 which is the hexadecimal equivalent of 13516816 (base 10)
| |
| | |
| Dec2Hex macro creates the XMLVar string variable when it is executed.
| |
| | |
| | |
| '''XMLVARS''' is part of the ''''XMLTools'''' XML expansion module written by Tom Aguilo. XMLTools can be freely downloaded here [http://fsdeveloper.com/forum/resources/xmltools-2-0-xml-expansion-module-for-fsx.148/]
| |
| | |
| | |
| '''NOTE:''' The side-by-side single quotes in Dec2Hex lines 2 and 13: these are two single quotes with no space in between
| |
| | |
| [[rpmc]]
| |
| [[Category:Aircraft Design]]
| |
| [[Category:Panel and Gauge Design]]
| |