📄 normalcoding.java
字号:
public class NormalCoding implements Encodeing
{
private boolean CheckCodeBeforeDotOrLineEnd(byte[] sSrc,int index){
for(int i=index;i>=0;i--){
if( sSrc[i]==(byte)'.' )
continue;
if( sSrc[i]==(byte)0xa )
return true;
return false;
}
return true;
}
private boolean CheckDotCodeLineEnd(byte[] sSrc,int i ){
if( i > sSrc.length - 3 )
return false;
if( sSrc[i]==(byte)'.'
&&sSrc[i+1]==(byte)0xd
&&sSrc[i+2]==(byte)0xa
)
return true;
return false;
}
//sometime , before encode , we need calc the number of
//hight ascii code in buffer;
public int CalcEncodeLengthForCharBuffer( byte[] sSrc ){
if( sSrc==null ){
return 0;
}
int nDes=0;
for(int i=0;i<sSrc.length ;i++ ){
if( CheckDotCodeLineEnd(sSrc,i)
&&CheckCodeBeforeDotOrLineEnd(sSrc,i) ){
nDes++;
}
nDes++;
}
return nDes;
};
public int CalcEncodeLength( byte[] sSrc , int nLength ){
if( nLength == 0 || sSrc==null ){
return 0;
}
int nDes=0;
for(int i=0;i<nLength;i++ ){
if( CheckDotCodeLineEnd(sSrc,i)
&&CheckCodeBeforeDotOrLineEnd(sSrc,i) ){
nDes++;
}
nDes++;
}
return nDes;
};
//the buffer should be alloc and free by external module;
//Now ,it always return true;
public int Encode( byte[] sSrc,byte[] sDes,int nSrcLength,
int nOffsetSrc ,int nOffsetDes){
if( nSrcLength == 0 || sSrc==null || sDes==null ){
return 0;
}
int nDes=0;
for(int i=0;i<nSrcLength;i++ ){
sDes[nOffsetDes+nDes]=sSrc[nOffsetSrc+i];
if( CheckDotCodeLineEnd(sSrc,nOffsetSrc+i)
&&CheckCodeBeforeDotOrLineEnd(sSrc,nOffsetSrc+i) ){
sDes[nOffsetDes+nDes]=(byte)'.';
nDes++;
}
nDes++;
}
return nDes;
};
//the buffer should be alloc and free by external module;
//Now ,it always return true;
public int Decode( byte[] sSrc,byte[] sDes,int nSrcLength
,int nOffsetSrc ,int nOffsetDes ){
if( nSrcLength == 0 || sSrc==null || sDes==null ){
return 0;
}
int nDes=0;
for(int i=0;i<nSrcLength;i++ ){
if( CheckDotCodeLineEnd(sSrc,nOffsetSrc+i)
&&CheckCodeBeforeDotOrLineEnd(sSrc,nOffsetSrc+i) ){
continue;
}
sDes[nOffsetDes+nDes]=sSrc[nOffsetSrc+i];
nDes++;
}
return nDes;
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -