我的技术规范

C/C++, Algorithm
随笔 - 11, 文章 - 7, 评论 - 1, 引用 - 0
数据加载中……

format_bytes_string


HRESULT __stdcall vbFormatBytesString( const char* data, int number_of_datas, VARIANT* outstring)
{
#pragma pack(1)
    static const OLECHAR __map_table_16[4*256] = { L'0',L'0',L' ',0,L'0',L'1',L' ',0,L'0',L'2',L' ',0,L'0',L'3',L' ',0,L'0',L'4',L' ',0,L'0',L'5',L' ',0,L'0',L'6',L' ',0,L'0',L'7',L' ',0,L'0',L'8',L' ',0,L'0',L'9',L' ',0,L'0',L'A',L' ',0,L'0',L'B',L' ',0,L'0',L'C',L' ',0,L'0',L'D',L' ',0,L'0',L'E',L' ',0,L'0',L'F',L' ',0,L'1',L'0',L' ',0,L'1',L'1',L' ',0,L'1',L'2',L' ',0,L'1',L'3',L' ',0,L'1',L'4',L' ',0,L'1',L'5',L' ',0,L'1',L'6',L' ',0,L'1',L'7',L' ',0,L'1',L'8',L' ',0,L'1',L'9',L' ',0,L'1',L'A',L' ',0,L'1',L'B',L' ',0,L'1',L'C',L' ',0,L'1',L'D',L' ',0,L'1',L'E',L' ',0,L'1',L'F',L' ',0,L'2',L'0',L' ',0,L'2',L'1',L' ',0,L'2',L'2',L' ',0,L'2',L'3',L' ',0,L'2',L'4',L' ',0,L'2',L'5',L' ',0,L'2',L'6',L' ',0,L'2',L'7',L' ',0,L'2',L'8',L' ',0,L'2',L'9',L' ',0,L'2',L'A',L' ',0,L'2',L'B',L' ',0,L'2',L'C',L' ',0,L'2',L'D',L' ',0,L'2',L'E',L' ',0,L'2',L'F',L' ',0,L'3',L'0',L' ',0,L'3',L'1',L' ',0,L'3',L'2',L' ',0,L'3',L'3',L' ',0,L'3',L'4',L' ',0,L'3',L'5',L' ',0,L'3',L'6',L' ',0,L'3',L'7',L' ',0,L'3',L'8',L' ',0,L'3',L'9',L' ',0,L'3',L'A',L' ',0,L'3',L'B',L' ',0,L'3',L'C',L' ',0,L'3',L'D',L' ',0,L'3',L'E',L' ',0,L'3',L'F',L' ',0,L'4',L'0',L' ',0,L'4',L'1',L' ',0,L'4',L'2',L' ',0,L'4',L'3',L' ',0,L'4',L'4',L' ',0,L'4',L'5',L' ',0,L'4',L'6',L' ',0,L'4',L'7',L' ',0,L'4',L'8',L' ',0,L'4',L'9',L' ',0,L'4',L'A',L' ',0,L'4',L'B',L' ',0,L'4',L'C',L' ',0,L'4',L'D',L' ',0,L'4',L'E',L' ',0,L'4',L'F',L' ',0,L'5',L'0',L' ',0,L'5',L'1',L' ',0,L'5',L'2',L' ',0,L'5',L'3',L' ',0,L'5',L'4',L' ',0,L'5',L'5',L' ',0,L'5',L'6',L' ',0,L'5',L'7',L' ',0,L'5',L'8',L' ',0,L'5',L'9',L' ',0,L'5',L'A',L' ',0,L'5',L'B',L' ',0,L'5',L'C',L' ',0,L'5',L'D',L' ',0,L'5',L'E',L' ',0,L'5',L'F',L' ',0,L'6',L'0',L' ',0,L'6',L'1',L' ',0,L'6',L'2',L' ',0,L'6',L'3',L' ',0,L'6',L'4',L' ',0,L'6',L'5',L' ',0,L'6',L'6',L' ',0,L'6',L'7',L' ',0,L'6',L'8',L' ',0,L'6',L'9',L' ',0,L'6',L'A',L' ',0,L'6',L'B',L' ',0,L'6',L'C',L' ',0,L'6',L'D',L' ',0,L'6',L'E',L' ',0,L'6',L'F',L' ',0,L'7',L'0',L' ',0,L'7',L'1',L' ',0,L'7',L'2',L' ',0,L'7',L'3',L' ',0,L'7',L'4',L' ',0,L'7',L'5',L' ',0,L'7',L'6',L' ',0,L'7',L'7',L' ',0,L'7',L'8',L' ',0,L'7',L'9',L' ',0,L'7',L'A',L' ',0,L'7',L'B',L' ',0,L'7',L'C',L' ',0,L'7',L'D',L' ',0,L'7',L'E',L' ',0,L'7',L'F',L' ',0,L'8',L'0',L' ',0,L'8',L'1',L' ',0,L'8',L'2',L' ',0,L'8',L'3',L' ',0,L'8',L'4',L' ',0,L'8',L'5',L' ',0,L'8',L'6',L' ',0,L'8',L'7',L' ',0,L'8',L'8',L' ',0,L'8',L'9',L' ',0,L'8',L'A',L' ',0,L'8',L'B',L' ',0,L'8',L'C',L' ',0,L'8',L'D',L' ',0,L'8',L'E',L' ',0,L'8',L'F',L' ',0,L'9',L'0',L' ',0,L'9',L'1',L' ',0,L'9',L'2',L' ',0,L'9',L'3',L' ',0,L'9',L'4',L' ',0,L'9',L'5',L' ',0,L'9',L'6',L' ',0,L'9',L'7',L' ',0,L'9',L'8',L' ',0,L'9',L'9',L' ',0,L'9',L'A',L' ',0,L'9',L'B',L' ',0,L'9',L'C',L' ',0,L'9',L'D',L' ',0,L'9',L'E',L' ',0,L'9',L'F',L' ',0,L'A',L'0',L' ',0,L'A',L'1',L' ',0,L'A',L'2',L' ',0,L'A',L'3',L' ',0,L'A',L'4',L' ',0,L'A',L'5',L' ',0,L'A',L'6',L' ',0,L'A',L'7',L' ',0,L'A',L'8',L' ',0,L'A',L'9',L' ',0,L'A',L'A',L' ',0,L'A',L'B',L' ',0,L'A',L'C',L' ',0,L'A',L'D',L' ',0,L'A',L'E',L' ',0,L'A',L'F',L' ',0,L'B',L'0',L' ',0,L'B',L'1',L' ',0,L'B',L'2',L' ',0,L'B',L'3',L' ',0,L'B',L'4',L' ',0,L'B',L'5',L' ',0,L'B',L'6',L' ',0,L'B',L'7',L' ',0,L'B',L'8',L' ',0,L'B',L'9',L' ',0,L'B',L'A',L' ',0,L'B',L'B',L' ',0,L'B',L'C',L' ',0,L'B',L'D',L' ',0,L'B',L'E',L' ',0,L'B',L'F',L' ',0,L'C',L'0',L' ',0,L'C',L'1',L' ',0,L'C',L'2',L' ',0,L'C',L'3',L' ',0,L'C',L'4',L' ',0,L'C',L'5',L' ',0,L'C',L'6',L' ',0,L'C',L'7',L' ',0,L'C',L'8',L' ',0,L'C',L'9',L' ',0,L'C',L'A',L' ',0,L'C',L'B',L' ',0,L'C',L'C',L' ',0,L'C',L'D',L' ',0,L'C',L'E',L' ',0,L'C',L'F',L' ',0,L'D',L'0',L' ',0,L'D',L'1',L' ',0,L'D',L'2',L' ',0,L'D',L'3',L' ',0,L'D',L'4',L' ',0,L'D',L'5',L' ',0,L'D',L'6',L' ',0,L'D',L'7',L' ',0,L'D',L'8',L' ',0,L'D',L'9',L' ',0,L'D',L'A',L' ',0,L'D',L'B',L' ',0,L'D',L'C',L' ',0,L'D',L'D',L' ',0,L'D',L'E',L' ',0,L'D',L'F',L' ',0,L'E',L'0',L' ',0,L'E',L'1',L' ',0,L'E',L'2',L' ',0,L'E',L'3',L' ',0,L'E',L'4',L' ',0,L'E',L'5',L' ',0,L'E',L'6',L' ',0,L'E',L'7',L' ',0,L'E',L'8',L' ',0,L'E',L'9',L' ',0,L'E',L'A',L' ',0,L'E',L'B',L' ',0,L'E',L'C',L' ',0,L'E',L'D',L' ',0,L'E',L'E',L' ',0,L'E',L'F',L' ',0,L'F',L'0',L' ',0,L'F',L'1',L' ',0,L'F',L'2',L' ',0,L'F',L'3',L' ',0,L'F',L'4',L' ',0,L'F',L'5',L' ',0,L'F',L'6',L' ',0,L'F',L'7',L' ',0,L'F',L'8',L' ',0,L'F',L'9',L' ',0,L'F',L'A',L' ',0,L'F',L'B',L' ',0,L'F',L'C',L' ',0,L'F',L'D',L' ',0,L'F',L'E',L' ',0,L'F',L'F',L' ',0 } ;
    static const __int64* map_table_64 = (__int64*)__map_table_16;
#pragma pack()

    int i;
    OLECHAR* intptr;

    if ( outstring == NULL )
        return E_POINTER;

    VariantClear( outstring);
    outstring->vt = VT_BSTR;
    outstring->bstrVal = SysAllocStringLen( (const OLECHAR*)NULL, number_of_datas * 3);

    intptr = (OLECHAR*)outstring->bstrVal;
    for ( i = 0 ; i < number_of_datas; ++ i)
    {
        *((__int64*)intptr) = map_table_64[ data[i] & 0xff ];
        intptr += 3;
    }
    return S_OK;
}

posted on 2012-02-17 09:09 panchao 阅读(120) 评论(0)  编辑 收藏 引用 所属分类: utils


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理