📄 myfile.~cpp
字号:
case 1:
if((MyHanZiFontLib=fopen("顺时针90度.txt","w+t"))==NULL)
{
Application->MessageBox("目的字库建立错误", "错了", MB_OK);
return;
}
break;
case 2:
if((MyHanZiFontLib=fopen("180度旋转.txt","w+t"))==NULL)
{
Application->MessageBox("目的字库建立错误", "错了", MB_OK);
return;
}
break;
case 3:
if((MyHanZiFontLib=fopen("逆时针90度.txt","w+t"))==NULL)
{
Application->MessageBox("目的字库建立错误", "错了", MB_OK);
return;
}
break;
case 4:
if((MyHanZiFontLib=fopen("纵向取模.txt","w+t"))==NULL)
{
Application->MessageBox("目的字库建立错误", "错了", MB_OK);
return;
}
break;
}
rewind(MyHanZiFontLib);
Edit1->Text=HanZiCounter;
for(i=0;i<HanZiCounter;i++)
{
HanZiCode[0]=(unsigned char)HanZiLibrary[2*i+1]>>8;
HanZiCode[1]=(unsigned char)HanZiLibrary[2*i+1];
HZSerialNo=((HanZiCode[0]-161)*94L+HanZiCode[1]-161);
HZByteOffset=HZSerialNo*32L;
fseek(HanZiFon,HZByteOffset,SEEK_SET);
fread(TempLattice,32,1,HanZiFon);
for(m=0;m<32;m++)
{
HanZiLattice[m]=0;
}
switch(RadioGroup1->ItemIndex)
{
case 0:
for(m=0;m<32;m++)
HanZiLattice[m]=TempLattice[m];
break;
case 1:
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m]; //0-14-->1-15
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[2*n+1]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m+1]; //1-15-->17-31
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[2*n+17]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m+17]; //17-31-->16-30
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[2*n+16]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m+16]; //16-30-->0-14
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[2*n]|=cTempChar2;
cTempChar1<<=1;
}
}
break;
case 2:
for(m=0;m<8;m++)
{
cTempChar2=0;
cTempChar1=TempLattice[2*m]; //0-14-->17-31
for(n=0;n<7;n++)
{
cTempChar2|=(cTempChar1&0x80);
cTempChar2>>=1;
cTempChar1<<=1;
}
cTempChar2|=(cTempChar1&0x80);
HanZiLattice[31-2*m]=cTempChar2;
}
for(m=0;m<8;m++)
{
cTempChar2=0;
cTempChar1=TempLattice[2*m+1]; //1-15-->16-30
for(n=0;n<7;n++)
{
cTempChar2|=(cTempChar1&0x80);
cTempChar2>>=1;
cTempChar1<<=1;
}
cTempChar2|=(cTempChar1&0x80);
HanZiLattice[30-2*m]=cTempChar2;
}
for(m=0;m<8;m++)
{
cTempChar2=0;
cTempChar1=TempLattice[2*m+17]; //17-31-->0-14
for(n=0;n<7;n++)
{
cTempChar2|=(cTempChar1&0x80);
cTempChar2>>=1;
cTempChar1<<=1;
}
cTempChar2|=(cTempChar1&0x80);
HanZiLattice[14-2*m]=cTempChar2;
}
for(m=0;m<8;m++)
{
cTempChar2=0;
cTempChar1=TempLattice[2*m+16]; //16-30-->1-15
for(n=0;n<7;n++)
{
cTempChar2|=(cTempChar1&0x80);
cTempChar2>>=1;
cTempChar1<<=1;
}
cTempChar2|=(cTempChar1&0x80);
HanZiLattice[15-2*m]=cTempChar2;
}
break;
case 3:
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m]; //0-14-->30-16
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=7-m;
HanZiLattice[30-2*n]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m+16]; //16-30-->31-17
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=7-m;
HanZiLattice[31-2*n]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m+17]; //17-31-->15-1
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=7-m;
HanZiLattice[15-2*n]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m+1]; //1-15-->14-0
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=7-m;
HanZiLattice[14-2*n]|=cTempChar2;
cTempChar1<<=1;
}
}
break;
case 4:
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m]; //0-14-->1-15
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[n]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[2*m+1]; //0-14-->1-15
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[8+n]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[16+2*m]; //0-14-->1-15
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[16+n]|=cTempChar2;
cTempChar1<<=1;
}
}
for(m=0;m<8;m++)
{
cTempChar1=TempLattice[17+2*m]; //0-14-->1-15
for(n=0;n<8;n++)
{
if(cTempChar1&0x80) cTempChar2=1;
else cTempChar2=0;
cTempChar2<<=m;
HanZiLattice[24+n]|=cTempChar2;
cTempChar1<<=1;
}
}
break;
default:
for(m=0;m<32;m++)
HanZiLattice[m]=TempLattice[m];
break;
}
ShowTheLattice(HanZiLattice);///在Form上显示它
fseek(MyHanZiFontLib,0,SEEK_END);
if(CheckBox1->Checked==True)
{
fprintf(MyHanZiFontLib,"%c",'0');
fprintf(MyHanZiFontLib,"%c",'x');
fprintf(MyHanZiFontLib,"%x",HanZiCode[0]);
fprintf(MyHanZiFontLib,"%c",',');
if(RadioGroup1->ItemIndex!=4)
{
fprintf(MyHanZiFontLib,"%c",'0');
fprintf(MyHanZiFontLib,"%c",'x');
fprintf(MyHanZiFontLib,"%x",HanZiCode[1]);
fprintf(MyHanZiFontLib,"%c",',');
}
}
for(k=0;k<32;k++)
{
fprintf(MyHanZiFontLib,"%c",'0');
fprintf(MyHanZiFontLib,"%c",'x');
if(HanZiLattice[k]<16)fprintf(MyHanZiFontLib,"%c",'0');
fprintf(MyHanZiFontLib,"%x",HanZiLattice[k]);
if(i==HanZiCounter-1 && k==31) fprintf(MyHanZiFontLib,"%c",' ');
else fprintf(MyHanZiFontLib,"%c",',');
if(CheckBox1->Checked==True)
{
if(RadioGroup1->ItemIndex==4)
{
if(k==15)
{
fprintf(MyHanZiFontLib,"\n");
fprintf(MyHanZiFontLib,"%c",'0');
fprintf(MyHanZiFontLib,"%c",'x');
fprintf(MyHanZiFontLib,"%x",HanZiCode[1]);
fprintf(MyHanZiFontLib,"%c",',');
}
}
else
{
if(k==14)fprintf(MyHanZiFontLib,"\n");
}
}
else
{
if(k==15)fprintf(MyHanZiFontLib,"\n");
}
}
fprintf(MyHanZiFontLib,"\n");
fprintf(MyHanZiFontLib,"%c",'/');
fprintf(MyHanZiFontLib,"%c",'/');
fprintf(MyHanZiFontLib,"%c",HanZiCode[0]);
fprintf(MyHanZiFontLib,"%c",HanZiCode[1]);
fprintf(MyHanZiFontLib,"\n");
}
fclose(HanZiFon);
if(fclose(MyHanZiFontLib)==0)
Application->MessageBox("目的字库建立成功", "恭喜,成功了", MB_OK);
else if(fclose(MyHanZiFontLib)==EOF)
Application->MessageBox("目的字库建立失败", "唉,再来一次吧", MB_OK);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ShowTheLattice(unsigned char ShowLattice[32])
{
int PosZeroX=152,PosZeroY=315,TempPosZeroX=152;
unsigned char TempCode;
int i,j;
int nRand = rand();
int ColorR,ColorG,ColorB;
float fMap;
fMap= (float)255/RAND_MAX;
ColorR=(unsigned int)nRand*fMap+0.5f;
nRand = rand();
fMap= (float)255/RAND_MAX;
ColorG=(unsigned int)nRand*fMap+0.5f;
Canvas->Refresh();
Canvas->Brush->Style=bsClear;
Canvas->Brush->Color=clWhite;
Canvas->Pen->Color=clWhite;
Canvas->Rectangle(PosZeroX,PosZeroY,PosZeroX+80,PosZeroY+80);
Canvas->Brush->Style=bsSolid;
for(i=0;i<32;i++)
{
TempCode=ShowLattice[i];
for(j=0;j<8;j++)
{
Canvas->Brush->Color=TColor(RGB(ColorR-j*i,(ColorG+i*j)/2,i*j));
Canvas->Pen->Color=TColor(RGB(ColorR-j*i,(ColorG+i*j)/2,i*j));
if(TempCode&0x80)
{
Canvas->Ellipse(TempPosZeroX,PosZeroY,TempPosZeroX+5,PosZeroY+5);
}
TempPosZeroX+=5;
TempCode<<=1;
}
if(i%2!=0)
{
TempPosZeroX=PosZeroX;
PosZeroY+=5;
}
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -