[Lazarus] How can I increment/decrement a alphanumeric value?
silvioprog
silvioprog at gmail.com
Fri Aug 20 13:25:49 CEST 2010
Em 20/08/2010 00:47, bobby escreveu:
> On 8/20/2010 5:01 AM, silvioprog wrote:
>> Hi bobby,
>>
>> Would you show me the function?
> Hi,
>
> here it is:
>
> function incHexStr(inHexStr: string): string;
> var
> HexMap: string;
> i: integer;
> j: integer;
> s: string;
> carry: integer;
> begin
> result := '';
> s := '';
> carry := 0;
> HexMap := '0123456789abcdef0123456789abcdef';
>
> for j := 1 to 16 do
> if AnsiLowerCase(inHexStr[length(inHexStr)]) = HexMap[j] then
> begin
> if j > 15 then carry := 1;
> inHexStr[length(inHexStr)] := HexMap[(j + 1)];
> break;
> end;
> if carry = 1 then
> for i := (length(inHexStr) - 1) downto 1 do
> begin
> if carry = 1 then
> for j := 1 to 16 do
> if AnsiLowerCase(inHexStr[i]) = HexMap[j] then
> begin
> carry := 0;
> if j > 15 then carry := 1;
> inHexStr[i] := HexMap[(j + 1)];
> break;
> end;
> end;
> if carry = 1 then inHexStr := '01' + inHexStr;
> result := inHexStr;
> end;
Thank you very much, bobby. ;)
Silvio Clécio
More information about the Lazarus
mailing list