连续2个字节 如何知道他是不是中文(续)连续2个字节 如何知道他是不是中文(续)
连续2个字节 怎么知道他是不是中文(续)
原问题:
现在要把数据从文本里读出来并显示到view上,因为文件比较大,所以决定用分屏显示。我的想法是每次读出1000字节然后显示在VIEW上,问题是 如果第1000字节和1001字节表示一个中文字,按照我的做法 不是把一个中文字分开了么,那么第一屏最后 和第二屏开始应该是乱麻,请问这种问题怎么解决。
根据大虾提示使用IsDBCSLeadByte函数,所以我写了一下函数(判断出是中文的前半个字节的话,就少打印一个字节保证输出正确的中文)...
连续2个字节 如何知道他是不是中文(续)
连续2个字节 怎么知道他是不是中文(续)
原问
:
现在要把数据从文本里读出来并显示到view上,因为文件比较大,所以决定用分屏显示。我的想法是每次读出1000字节然后显示在VIEW上,问题是 如果第1000字节和1001字节
示一个中文字,按照我的做法 不是把一个中文字分开了么,那么第一屏最后 和第二屏开始应该是乱麻,请问这种问题怎么解决。
根据大虾提示使用IsDBCSLeadByte函数,所以我写了一下函数(判断出是中文的前半个字节的话,就少打印一个字节保证输出正确的中文)
int CStockFile::ReadCText(unsigned char *buff)//读有中文的文本
{
pos=CFile::Seek( pos, CFile::begin );
pos2=CFile::Read(buff,lenperpage);
if(lenperpage==pos2)
{
if(IsDBCSLeadByte(buff[pos2-1])==TRUE )//是中文前半个字
pos2--;
}
pos=pos2+pos;
return pos2;
}
主程序
CStockFile XX( A.TXT ,10);
BOOL X= XX.Open();
unsigned char buf[20];
int i,filelen=0;
while(filelen XX.GetLength())
{
i=XX.ReadCText(buf);
filelen=filelen+i;
buf[i]=0;
TRACE ( %s ,buf);
}
还是有问题 我程序有问题么,是不是IsDBCSLeadByte不是判断前半个中文字的,如果不是
请大虾告诉我怎么解决上面的问题,
------解决
--------------------------------------------------------
去找一个中文字库(貌似到处都是)..把得来的2个字节的字符串拿到那里查一下。查询有结
果返回TRUE.否则F
本文档为【连续2个字节 如何知道他是不是中文(续)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。