⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encode.cpp

📁 Crimson编辑器的英文版,完成从韩文版变成英文版的移植,并且附带可执行文件和注册表文件,无需原先的安装包,是改写编辑器的最理想选择.
💻 CPP
字号:
#include "stdafx.h"
#include "encode.h"

#define ENCODE_BUFFER_SIZE		256

static char _encode_table[] = {
    '\000',  '\001',  '\002',  '\003',  '\004',  '\005',  '\006',  '\007',
    '\010',  '\011',  '\012',  '\013',  '\014',  '\015',  '\016',  '\017',
    '\020',  '\021',  '\022',  '\023',  '\024',  '\025',  '\026',  '\027',
    '\030',  '\031',  '\032',  '\033',  '\034',  '\035',  '\036',  '\037',
    '<'   ,  '\\'  ,  'A'   ,  'r'   ,  ' '   ,  'N'   ,  ')'   ,  '='   ,
    ']'   ,  'F'   ,  '@'   ,  '3'   ,  '>'   ,  '+'   ,  'M'   ,  '('   ,
    'G'   ,  '['   ,  'j'   ,  'q'   ,  'L'   ,  'S'   ,  '*'   ,  'R'   ,
    'V'   ,  '0'   ,  'B'   ,  'i'   ,  'd'   ,  'e'   ,  's'   ,  't'   ,
    '%'   ,  'W'   ,  '4'   ,  'h'   ,  '!'   ,  '5'   ,  'f'   ,  'u'   ,
    'H'   ,  'E'   ,  'C'   ,  'c'   ,  'g'   ,  '6'   ,  '"'   ,  'Q'   ,
    'l'   ,  'a'   ,  'k'   ,  '&'   ,  'K'   ,  'T'   ,  'w'   ,  'v'   ,
    '$'   ,  'I'   ,  'b'   ,  'J'   ,  'U'   ,  '#'   ,  ','   ,  '\''  ,
    'm'   ,  'X'   ,  'D'   ,  'p'   ,  'Z'   ,  '`'   ,  'x'   ,  'P'   ,
    '}'   ,  'n'   ,  '9'   ,  '{'   ,  '1'   ,  'O'   ,  '7'   ,  '-'   ,
    '^'   ,  ';'   ,  'o'   ,  '2'   ,  '/'   ,  '.'   ,  'y'   ,  '8'   ,
    '|'   ,  '_'   ,  'Y'   ,  '~'   ,  '?'   ,  ':'   ,  'z'   ,  '\177',
    '\200',  '\201',  '\202',  '\203',  '\204',  '\205',  '\206',  '\207',
    '\210',  '\211',  '\212',  '\213',  '\214',  '\215',  '\216',  '\217',
    '\220',  '\221',  '\222',  '\223',  '\224',  '\225',  '\226',  '\227',
    '\230',  '\231',  '\232',  '\233',  '\234',  '\235',  '\236',  '\237',
    '\240',  '\241',  '\242',  '\243',  '\244',  '\245',  '\246',  '\247',
    '\250',  '\251',  '\252',  '\253',  '\254',  '\255',  '\256',  '\257',
    '\260',  '\261',  '\262',  '\263',  '\264',  '\265',  '\266',  '\267',
    '\270',  '\271',  '\272',  '\273',  '\274',  '\275',  '\276',  '\277',
    '\300',  '\301',  '\302',  '\303',  '\304',  '\305',  '\306',  '\307',
    '\310',  '\311',  '\312',  '\313',  '\314',  '\315',  '\316',  '\317',
    '\320',  '\321',  '\322',  '\323',  '\324',  '\325',  '\326',  '\327',
    '\330',  '\331',  '\332',  '\333',  '\334',  '\335',  '\336',  '\337',
    '\340',  '\341',  '\342',  '\343',  '\344',  '\345',  '\346',  '\347',
    '\350',  '\351',  '\352',  '\353',  '\354',  '\355',  '\356',  '\357',
    '\360',  '\361',  '\362',  '\363',  '\364',  '\365',  '\366',  '\367',
    '\370',  '\371',  '\372',  '\373',  '\374',  '\375',  '\376',  '\377'
};


static char _decode_table[] = {
    '\000',  '\001',  '\002',  '\003',  '\004',  '\005',  '\006',  '\007',
    '\010',  '\011',  '\012',  '\013',  '\014',  '\015',  '\016',  '\017',
    '\020',  '\021',  '\022',  '\023',  '\024',  '\025',  '\026',  '\027',
    '\030',  '\031',  '\032',  '\033',  '\034',  '\035',  '\036',  '\037',
    '$'   ,  'D'   ,  'N'   ,  ']'   ,  'X'   ,  '@'   ,  'S'   ,  '_'   ,
    '/'   ,  '&'   ,  '6'   ,  '-'   ,  '^'   ,  'o'   ,  'u'   ,  't'   ,
    '9'   ,  'l'   ,  's'   ,  '+'   ,  'B'   ,  'E'   ,  'M'   ,  'n'   ,
    'w'   ,  'j'   ,  '}'   ,  'q'   ,  ' '   ,  '\''  ,  ','   ,  '|'   ,
    '*'   ,  '"'   ,  ':'   ,  'J'   ,  'b'   ,  'I'   ,  ')'   ,  '0'   ,
    'H'   ,  'Y'   ,  '['   ,  'T'   ,  '4'   ,  '.'   ,  '%'   ,  'm'   ,
    'g'   ,  'O'   ,  '7'   ,  '5'   ,  'U'   ,  '\\'  ,  '8'   ,  'A'   ,
    'a'   ,  'z'   ,  'd'   ,  '1'   ,  '!'   ,  '('   ,  'p'   ,  'y'   ,
    'e'   ,  'Q'   ,  'Z'   ,  'K'   ,  '<'   ,  '='   ,  'F'   ,  'L'   ,
    'C'   ,  ';'   ,  '2'   ,  'R'   ,  'P'   ,  '`'   ,  'i'   ,  'r'   ,
    'c'   ,  '3'   ,  '#'   ,  '>'   ,  '?'   ,  'G'   ,  'W'   ,  'V'   ,
    'f'   ,  'v'   ,  '~'   ,  'k'   ,  'x'   ,  'h'   ,  '{'   ,  '\177',
    '\200',  '\201',  '\202',  '\203',  '\204',  '\205',  '\206',  '\207',
    '\210',  '\211',  '\212',  '\213',  '\214',  '\215',  '\216',  '\217',
    '\220',  '\221',  '\222',  '\223',  '\224',  '\225',  '\226',  '\227',
    '\230',  '\231',  '\232',  '\233',  '\234',  '\235',  '\236',  '\237',
    '\240',  '\241',  '\242',  '\243',  '\244',  '\245',  '\246',  '\247',
    '\250',  '\251',  '\252',  '\253',  '\254',  '\255',  '\256',  '\257',
    '\260',  '\261',  '\262',  '\263',  '\264',  '\265',  '\266',  '\267',
    '\270',  '\271',  '\272',  '\273',  '\274',  '\275',  '\276',  '\277',
    '\300',  '\301',  '\302',  '\303',  '\304',  '\305',  '\306',  '\307',
    '\310',  '\311',  '\312',  '\313',  '\314',  '\315',  '\316',  '\317',
    '\320',  '\321',  '\322',  '\323',  '\324',  '\325',  '\326',  '\327',
    '\330',  '\331',  '\332',  '\333',  '\334',  '\335',  '\336',  '\337',
    '\340',  '\341',  '\342',  '\343',  '\344',  '\345',  '\346',  '\347',
    '\350',  '\351',  '\352',  '\353',  '\354',  '\355',  '\356',  '\357',
    '\360',  '\361',  '\362',  '\363',  '\364',  '\365',  '\366',  '\367',
    '\370',  '\371',  '\372',  '\373',  '\374',  '\375',  '\376',  '\377'
};


const char * map_encode(const char * dat)
{
    static char buf[ENCODE_BUFFER_SIZE];
    register char * cp = & buf[0];

    if (dat != (const char *) 0)
        while (* dat && cp < & buf[ENCODE_BUFFER_SIZE-1])
            * cp++ = _encode_table[(unsigned char)(* dat++)];

    * cp = '\0';
    return buf;
}


const char * map_decode(const char * dat)
{
    static char buf[ENCODE_BUFFER_SIZE];
    register char * cp = & buf[0];

    if (dat != (const char *) 0)
        while (* dat && cp < & buf[ENCODE_BUFFER_SIZE-1])
            * cp++ = _decode_table[(unsigned char)(* dat++)];

    *cp = '\0';
    return buf;
}


const char * hex_encode(const char * dat)
{
    static char buf[2 * ENCODE_BUFFER_SIZE];
    int i, j, len;

    len = strlen(dat);
    for(i = j = 0; i < len && j < 2 * ENCODE_BUFFER_SIZE; i++, j += 2) {
        sprintf(buf+j, "%X", (unsigned char)(dat[i]));
    }
    buf[j] = '\0';

    return buf;
}


const char * hex_decode(const char * dat)
{
    static char buf[ENCODE_BUFFER_SIZE], tmp[3];
    int i, j, len;

    len = strlen(dat); tmp[2] = '\0';
    for(i = j = 0; i < len && j < ENCODE_BUFFER_SIZE; i += 2, j++) {
        tmp[0] = dat[i]; tmp[1] = dat[i+1];
        buf[j] = (int)strtol(tmp, (char **)NULL, 16);
    }
    buf[j] = '\0';

    return buf;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -