要从文件中读入文本

来源:互联网 发布:用友u8物理数据备份 编辑:程序博客网 时间:2024/05/01 01:09

要从文件中读入文本,有两个问题需要解决:

1、怎么打开文件并读该文件。

2、怎么将读入的文本放置到类似TBuf这样的东西中。

下面看一个程序片段:

 RFs fs;
 User::LeaveIfError(fs.Connect());

 RFile file;
 User::LeaveIfError(file.Open(fs, _L("e://1.txt"), EFileRead));
 
 TInt sz;
 file.Size( sz);
 TBuf16<20> sz_str;
    sz_str.Format( _L( "%d" ) , sz);
 
 TBuf8< 2> buf;
 for( int i = 0; i < sz / 2; i ++)
 {
  TBuf16< 1> c;
  file.Read( buf, 2);
  c.Copy( ( unsigned short int *)buf.Ptr(), 1);
  iCNTextShowContainer->AddText( c);
 }
 file.Close();
 fs.Close();

读文件很简单,见上面的程序应该可以看懂。

RFile只提供了一个读入8位字节类型的read方法,而unicode是16位的,这就牵扯到了一个将两个8位字节转换成一个unicode码的问题,上面程序中Copy( ( unsigned short int *)buf.Ptr(), 1);就完成这个工作。具体过程就是:得到文件大小字节数,包含的文字数量为大小的二分之一,然后循环读入字节,一次读入两个字节,通过Copy方法把这两个字节转换成一个unicode码,放入到TBuf16中。