[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