永发信息网

请教各位,怎样将一篇保存为txt文档的中文,通过matlab读取后转换成ASCII码形式的一个数组。

答案:3  悬赏:40  手机版
解决时间 2021-02-26 09:45
  • 提问者网友:人傍凄凉立暮秋
  • 2021-02-26 02:14
因为需要对一篇文章进行分析,比如统计其中句号的个数,所以想通过matlab转换成一串ASCII码的数组进行分析。
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-02-26 03:24
char strText[1024+1];

typedef int (WINAPI ICEPUB_READFILETOTEXT)( char *strFilename,char *strText,int maxLen);
ICEPUB_READFILETOTEXT *icePub_readFileToText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_readFileToText = (ICEPUB_READFILETOTEXT *)GetProcAddress(hDLLDrv, "icePub_readFileToText");
}

if(icePub_readFileToText != NULL)
{
icePub_readFileToText("D:\\test\\a.txt",strText,1024);
}

if(hDLLDrv)
FreeLibrary(hDLLDrv);

AfxMessageBox(strText);
全部回答
  • 1楼网友:孤老序
  • 2021-02-26 05:57
word做这些事情不比matlab差,何苦那? 放到word里,自带统计,如果只是统计符号,字母什么的话,一个个统计就好了啊,不明白你的意思,为什么要选用matlab这种数学矩阵超强的软件做这个
  • 2楼网友:持酒劝斜阳
  • 2021-02-26 04:27
这个是因为你对汉字的编码不了解引起的。 对于gb2312的字符(就是我们平时所说的区位),一个汉字对应于两个字节。 每个字节都是大于a0(十六进制), 倘若,你的第一个字节大于a0,而你的第二个字节小于a0,那么它应当不是汉字(仅仅对于gb2312),不知道你能否理解我说的。 如果真的发生这种情况(你的第一个字节大于a0,而你的第二个字节小于a0),那么系统找不到一个汉字与它对应,极有可能显示是两个字符(ascii),第一个是就如你上面的?,第二个字符可能就是正常的ascii码。 对于现在的gbk编码是要求汉字每个字节都超过80(十六进制,对应于十进制的128),当然有一些码是没有汉字对应的。 现在还有big5码、万国码,现在的汉字编码也复杂了。 哎。 了解就行。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯