Symbian c++ API读取文件的字符串有关问题
发布时间:2010-05-30 00:34:10 文章来源:www.iduyao.cn 采编人员:星星草
Symbian c++ API读取文件的字符串问题?
我有个二进制文件,在symbian平台上读取这个文件,文件里面有unicode字符的中文字符串,通过什么方法读取啊?我试过用readstream读取,但读出来的是二进制...求高手指点...
------解决方案--------------------
好象有个RFileReadStream::ReadTUint16
------解决方案--------------------
unicode标准编码是2字节代表一个字符,而symbian的RFile读的是8位的,所以读取出来我们需要做一些处理,我写了一段代码,是读取unicode编码方式的,可供楼主参考一下:
RFile file;
TInt err = file.Open(CEikonEnv::Static()->FsSession(),_L("C:\\test.txt"),EFileRead| EFileWrite | EFileStreamText);
if (err == KErrNone)
{
TInt size;
file.Size(size);
HBufC8* text = HBufC8::NewL(size);
TPtr8 ptr = text->Des();
file.Read(ptr);
HBufC* unicode = HBufC::NewL(size/2);
const TUint8* str = text->Ptr();
for(TInt i=0; i<size; i++)
{
TUint16 ch1 = *(str+i);
TUint16 ch2 = *(str+i+1);
TUint16 ch = (ch2<<8)+ch1;
//FF、FE表示文件为unicode编码
if( ch1!=0xFF && ch2 != 0xFE) unicode->Des().Append(&ch,1);
i++;
}
delete text;
iLabel1->SetTextL(unicode->Right(10));
delete unicode;
file.Close();
}
------解决方案--------------------
另外楼主可以考虑使用TFileText,TFileText可以读取16位的文件,不过TFileText得缺陷是每次read一行
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
高手,求个S60v3 FP2 320*240分辨率的SDK
求个S60v3 FP2 320*240分辨率的SDK,
240*320的SDK虽然可以调分辨率的,但我想要一个和E72一...
-
请教关于smybian上使用sqlite的问题
请问如何在symbian 9.1版本上使用sqlite啊?
------解决方案--------------------
直接去sql...
-
symbian 可以内嵌浏览器吗
谁有内嵌浏览器的简单代码吗?或者如何实现内嵌浏览器。谢谢
------解决方案--------------------
ht...
-
symbian:如何判断一个文件是否系统支持的手机铃声格式
现在需要扫描一些固定后缀的文件如MP3,aac等显示出来供用户选择设置为手机铃...
-
数据库求助!!
我创建了一个RDbStoreDatabase,想把通讯录的数据库内容复制过来,该如何实现?实在是不想一条条的insert。。。
------解...
-
Specified file '\Symbian\9.1\S60_3rd_MR\EPOC32\RELEASE\WINSCW\UDEB\.lib' not found 什么意思?
请大家帮我解决一下,...
-
关于Symbian的express signed
我想给一个Symbian程序做一个express signed,在得到了publisheID后,还需要一个Content ID才能完成,可...
-
CPbkContactEngine::NewL()真机崩溃
如题,在模拟器上正常,在真机上崩溃
哪位遇到过?
------解决方案--------------------
我也遇...
-
请问在symbian如何获取最近手机基站的lac和cid?
请问在symbian如何获取最近手机基站的lac和cid?
------解决方案---------------...
-
求救rvct2.2问题:Cannot obtain license for Compiler (feature compiler) with license version >= 2.2
在carbide用rvct2.2编译...