//====================================================================
// 函数: w_copyfile.fun_10_16()
//--------------------------------------------------------------------
// 描述:将十进制数转为十六进制的数
// 算法思路很简单:用16来除,没除完一次,将商作为被除数如此重复,一直到商为0为止,然后将余数逆序拼接。
//translate() 函数负责10~16 到ABCDEF的转换。
//--------------------------------------------------------------------
// 参数:
// value long arg_number
//--------------------------------------------------------------------
// 返回: string
//--------------------------------------------------------------------
// 作者: huangyz 日期: 2010年05月06日
//--------------------------------------------------------------------
// Copyright (c) 2002-2009 NeuqSoft, All rights reserved.
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================
String ls_return
Long ll_quotient , ll_remain, ll_index
Long ll_devided
ll_devided = arg_number
DO
ll_quotient = ll_devided / 16
ll_remain = Mod(ll_devided,16)
ls_return = translate(ll_remain) + ls_return
ll_devided = ll_quotient
LOOP WHILE ll_quotient > 0
IF Len(ls_return) < 2 THEN
RETURN '0' + ls_return
ELSE
RETURN ls_return
END IF
translate函数:
//====================================================================
// 函数: w_copyfile.translate()
//--------------------------------------------------------------------
// 描述:
//--------------------------------------------------------------------
// 参数:
// value long arg_number
//--------------------------------------------------------------------
// 返回: string
//--------------------------------------------------------------------
// 作者: huangyz 日期: 2010年05月06日
//--------------------------------------------------------------------
// Copyright (c) 2002-2009 NeuqSoft, All rights reserved.
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================
String ls_trans = 'ABCDEF'
CHOOSE CASE arg_number
CASE IS < 10
RETURN String(arg_number)
CASE ELSE
RETURN Mid(ls_trans,arg_number - 10 + 1,1)
END CHOOSE