快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱h188下载app:C++ Builder控件版



奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫**

* [翻文转字]C++ Builder控件版 *

* V1.0 正式版 应用阐明 *

* 2000-04-30 *

奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫**

版权阐明:

-------------

作者:周鹏飞(莫高软件事情室)

Email: mogao@371.net

URL: http://mogao.126.com

教导网:http://home.gbsource.net/mogao

本控件为开放源代码的自由软件,版权由作者:周鹏飞和[莫高软件事情室]所有。

功能简介:

-------------

本控件主要感化是: 可编码和解码今朝常见的各类乱码。有我在手,乱码不愁!

可以使汉字在Gb码、Big5码和HZ码和之间进行自由的转换。

可以把随意率性翰墨和文件转换为UUencode、XXencode、Base64

和QP码这四种在Email中常用的编码规划,同时还支持解码。

进级先容:

-------------

V1.0正式版(2000-04-30) 增添三种在Email中常用的编码规划:UUencode、XXencode和Base64,

可以把随意率性翰墨和文件转换为这三种编码,同时还支持解码。

V1.0 beta(1999-12-05) 可以使汉字在Gb码、Big5码、HZ码和QP码之间进行自由的转换。

应用授权:

-------------

见License.txt文件。

应用情况:

-------------

本控件是用C++ Builder4.0开拓而成,现在只能在C++ Builder4.0下应用,

BCB3因手头没有以是没法测试,存问装BCB3的同伙协助测试,感谢。同时

For Delphi的版本、DLL版本和ActiveX版本也将在近期推出。

技巧支持与反馈:

-------------

本控件为自由软件,不用注册但同样可以获得技巧支持。假如您想获得本控件的技

术支持和更新看护,请造访我的Homepage,加入邮递列表或直接给我写信,Email的

主题(Subject)应写为:订阅邮件列表。

假如您对本控件有什么设法主见、建议或者您应用了本控件,请来信见告。感谢您的支持。

应用阐明:

-------------

1. [安装控件]

在BCB4的IDE中选择Component菜单下Install Component项,在Unit file name、

Package file name中指定“gbbig.cpp”文件的路径和所应用的包。包可所以已经

存在的,例如D:\borland\cbuilder4\Lib\dclusr40.bpk,也可以创建新包,例如

D:\Borland\CBuilder4\Projects\gb.bpk。单击OK,然后BCB会提示要编译,当编

译完成后单击Install。至此,控件安装成功,应能在构件面板[莫高软件]页上看

到控件图标,假如没有,选择Component菜单下Install Package项,单击Add,选

定刚才编译的.bpl文件(如gb.bpl),单击“确定”,单击OK。

2. [应用控件]

请先将下面3个文件

gbbig.h (控件头文件)

gbbig.res (控件资本文件)

gbbig.dcr (控件图标文件)

拷贝到和您的法度榜样同一个目录下,然后您就可以象应用BCB自带的控件一样应用本

控件了^_^

3. [函数阐明]

请参看源法度榜样。

/奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*

*       [翻文转字]C++ Builder控件版            *

*           V1.0 正式版                *

*               2000-04-30                 *

*                                    *

*作者:周鹏飞(莫高软件事情室)                     *

*Email: mogao@371.net                          *

*URL: http://mogao.126.com                        *

*教导网:http://home.gbsource.net/mogao                 *

*本控件为开放源代码的自由软件,版权由作者:周鹏飞和[莫高软件事情室]所有。*

奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫奸淫*/

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include "GbBig.h"

#pragma package(smart_init)

//---------------------------------------------------------------------------

// ValidCtrCheck is used to assure that the components created do not have

// any pure virtual functions.

//

static inline void ValidCtrCheck(TGbBig *)

{

new TGbBig(NULL);

}

//---------------------------------------------------------------------------

__fastcall TGbBig::TGbBig(TComponent* Owner)

: TComponent(Owner)

{

FInputText=NULL;

FOutputText=NULL;

temp=NULL;

FInput='\0';

FOutput='\0';

}

//---------------------------------------------------------------------------

__fastcall TGbBig::~TGbBig(void)

{

FInputText=NULL;

delete FOutputText;

FOutputText=NULL;

delete temp;

temp=NULL;

FInput='\0';

FOutput='\0';

}

//---------------------------------------------------------------------------

//编码函数

vo和记娱h188下载appid __fastcall TGbBig::Encode(void)

{

if(FInputText)

{

delete FOutputText;

FOutputText=NULL;

switch(Code)

{

case 0 :

FOutputText=new char[Num+1];

Res=LoadResource(HInstance,FindResource(HInstance,"GB_BIG5","TEXT"));

FontLib=(char*)LockResource(Res);

GbToBig5();

break;

case 1 :

FOutputText=new char[Num+1];

Res=LoadResource(HInstance,FindResource(HInstance,"BIG5_GB","TEXT"));

FontLib=(char*)LockResource(Res);

Big5ToGb();

break;

case 2 :

FOutputText=new char[Num*3+1];

EncodeHZ();

break;

case 3 :

FOutputText=new char[Num+1];

DecodeHZ();

break;

case 4 :

FOutputText=new char[Num*3+1];

EncodeQP();

break;

case 5 :

FOutputText=new char[Num+1];

DecodeQP();

break;

case 6 :

FOutputText=new char[Num/57+Num*4/3+5];

EncodeBase64();

break;

case 7 :

FOutputText=new char[Num*3/4+1];

DecodeBase64();

break;

case 8 :

FOutputText=new char[Num*2/45+Num*4/3+5];

EncodeUue();

break;

case 9 :

FOutputText=new char[Num*3/4+1];

DecodeUue();

break;

case 10 :

FOutputText=new char[Num*2/45+Num*4/3+5];

EncodeXxe();

break;

case 11 :

FOutputText=new char[Num*3/4+1];

DecodeXxe();

break;

}

}

}

//---------------------------------------------------------------------------

//GB码转换为Big5码

void __fastcall TGbBig::GbToBig5(void)

{

unsigned char gx,gy,bx,by;

unsigned int xx,yy,i=0;

while((gx=*FInputText++)!='\0')

{

if(gx>=161)

{

gy=*FInputText++;

xx=(gx-16和记娱h188下载app1)*190;

yy=(gy-161)*2;

bx=*(FontLib+xx+yy);

by=*(FontLib+xx+yy+1);

if(gy=161)

{

by=*FInputText++;

xx=(bx-161)*316;

if(by=161)

{

if(!x)

{

*(FOutputText+i)='~';

i++;

*(FOutputText+i)='{';

i++;

x=1;

}

else x=1;

*(FOutputText+i)=(char)(hz-128);

i++;

}

else

{

if(x)

{

*(FOutputText+i)='~';

i++;

*(FOutputText+i)='}';

i++;

x=0;

}

else x=0;

*(FOutputText+i)=hz;

i++;

}

}

if(x)

{

*(FOutputText+i)='~';

i++;

*(FOutputText+i)='}';

i++;

x=0;

}

*(FOutputText+i)='\0';

FOutput=(AnsiString)FOutputText;

}

//---------------------------------------------------------------------------

//对HZ进行解码

void __fastcall TGbBig::DecodeHZ(void)

{

unsigned i=0;

unsigned char hz;

while((hz=*FInputText++)!='\0')

{

loop2:

if(hz==126)

if((hz=*FInputText++)!='\0')

if(hz==123)

while((hz=*FInputText++)!='\0')

{

loop3:

if(hz==126)

{

if((hz=*FInputText++)!='\0')

if(hz==125) goto loop;

else {*(FOutputText+i)=(char)254;i++;goto loop3;}

}

else {*(FOutputText+i)=(char)(hz+128);i++;}

}

else {*(FOutputText+i)='~';i++;goto loop2;}

else {*(FOutputText+i)='~';i++;goto end;}

else {*(FOutputText+i)=hz;i++;}

loop:;

}

end:;

*(FOutputText+i)='\0';

FOutput=(AnsiString)FOutputText;

}

//---------------------------------------------------------------------------

//用QP进行编码

void __fastcall TGbBig::EncodeQP(void)

{

unsigned char first,second,sour;

unsigned int i=0;

while((sour=*FInputText++)!='\0')

{

if(sour==61)

{

*(FOutputText+i)='=';

i++;

*(FOutputText+i)='3';

i++;

*(FOutputText+i)='D';

i++;

}

else

{

if(sour>127)

{

first=sour>>4;

second=sour&15;

if(first>9) first+=55;

else first+=48;

if(second>9) second+=55;

else second+=48;

*(FOutputText+i)='=';

i++;

*(FOutputText+i)=first;

i++;

*(FOutputText+i)=second;

i++;

}

else {*(FOutputText+i)=sour;i++;}

}

}

*(FOutputText+i)='\0';

FOutput=(AnsiString)FOutputText;

}

//---------------------------------------------------------------------------

//对QP进行解码

void __fastcall TGbBig::DecodeQP(void)

{

unsigned char first,second,sour;

unsigned int i=0;

while((sour=*FInputText++)!='\0')

{

if(sour==61)

{

if((first=*FInputText++)=='\0') {*(FOutputText+i)=sour;i++;break;}

else if((first57)&&(first70))

{

*(FOutputText+i)=sour;

i++;

*(FOutputText+i)=first;

i++;

continue;

}

else if((second=*FInputText++)=='\0')

{

*(FOutputText+i)=sour;

i++;

*(FOutputText+i)=first;

i++;

break;

}

else if((second57)&&(second70))

{

*(FOutputText+i)=sour;

i++;

*(FOutputText+i)=first;

i++;

*(FOutputText+i)=second;

i++;

continue;

}

if(first>=65) first-=55;

else first-=48;

if(second>=65) second-=55;

else second-=48;

sour=NULL;

sour=first>k;

*(chuue+i)|=t;

t=*(chasc+i)>=2;

k+=2;

}

*(chuue+3)=*(chasc+2)&63;

for(i=0;i=0)&&(*(chuue+i)=26)&&(*(chuue+i)=52)&&(*(chuue+i)=65)&&(*(chuue+i)=97)&&(*(chuue+i)=48)&&(*(chuue+i)>8-k;

*(chasc+i)|=t;

}

}

//---------------------------------------------------------------------------

//用UUenCode进行编码

void __fastcall TGbBig::EncodeUue(void)

{

unsigned char *sour,*obje,*inputtext;

unsigned int i,j=0,m=45,n=45,num;

inputtext=FInputText;

sour=new char[45];

obje=new char[60];

while(m==45)

{

m=strlen(inputtext);

if(m>k;

*(chuue+i)|=t;

if(*(chuue+i)==NULL) *(chuue+i)+=96;

else *(chuue+i)+=32;

t=*(chasc+i)>=2;

k+=2;

}

*(chuue+3)=*(chasc+2)&63;

if(*(chuue+3)==NULL) *(chuue+3)+=96;

else *(chuue+3)+=32;

}

//---------------------------------------------------------------------------

//对UUenCode解码

void __fastcall TGbBig::DecodeUue(void)

{

unsigned char *sour,*obje,*inputtext;

unsigned int i,j=0,m=45,n;

sour=new char[60];

obje=new char[45];

inputtext=FInputText;

while(m==45)

{

while(*inputtext=='\r'||*inputtext=='\n')

inputtext+和记娱h188下载app+;

if((m=*inputtext)!=96||m=='\0')

{

n=m-32;

m=n;

inputtext++;

}

else break;

if(n>8-k;

*(chasc+i)|=t;

}

}

//---------------------------------------------------------------------------

//用XXenCode进行编码

void __fastcall TGbBig::EncodeXxe(void)

{

unsigned char *sour,*obje,*inputtext;

unsigned int i,j=0,m=45,n=45;

char set[]="+-01234567和记娱h188下载app89ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

inputtext=FInputText;

sour=new char[45];

obje=new char[60];

while(m==45)

{

m=strlen(inputtext);

if(m>2;

chxxe[1]=(chasc[0]>4)&15;

chxxe[2]=(chasc[1]>6)&3;

chxxe[3]=chasc[2]&63;

for(i=0;i=48&&ch=65&&ch=97&&ch>8-k;

*(chasc+i)|=t;

}

}

//---------------------------------------------------------------------------

void __fastcall TGbBig::Input(AnsiString FInput)

{

delete temp;

temp=NULL;

Num=FInput.Length();

FInputText=new char[Num+1];

strncpy(FInputText,FInput.c_str(),Num);

FInputText[Num]='\0';

temp=FInputText;

}

//---------------------------------------------------------------------------

void __fastcall TGbBig::InputText(char* Text)

{

delete temp;

temp=NULL;

Num=StrLen(Text);

FInputText=new char[Num+1];

strncpy(FInputText,Text,Num);

FInputText[Num]='\0'和记娱h188下载app;;

temp=FInputText;

}

//---------------------------------------------------------------------------

namespace Gbbig

{

void __fastcall PACKAGE Register()

{

TComponentClass classes[1] = {__classid(TGbBig)};

RegisterComponents("莫高软件", classes, 0);

}

}

//---------------------------------------------------------------------------

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: