问一个怎么读写Unicode文本文件的问题,顺便散分~~

rebbie 2003-08-19 10:46:39
怎么在bcb里读取unicode文本文件,然后把文件内容显示出来?
怎么做?用到那些函数和控件?
...全文
116 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rebbie 2003-08-23
  • 打赏
  • 举报
回复
楼上的方法我没试过,不过显示的问题我在msdn里找到了相应的帮助,通过直接向richedit发送消息的方法直接读入。

谢谢各位,谢谢,但是对文本内容的打印却成问题了 ;)
rebbie 2003-08-19
  • 打赏
  • 举报
回复
Up
rebbie 2003-08-19
  • 打赏
  • 举报
回复
To keiy

bcb带的Richedit本身没有LoadFromFile方法,其LoadFromFile方法是属于其的属性Lines的
而lines是TStrings类的实例,所以兜回了刚才的那个圈子,读到字母的时候就截止了。只是不清楚你所指的RichEdit是否是bcb带的?

rebbie 2003-08-19
  • 打赏
  • 举报
回复
unicode文本文件的格式是(HEX格式):FF FE xx xx ...
一个字符用两个字节表示,如果用普通的LoadFromFile函数读到字母字符的时候就截止了,因为字母是单字节的,用unicode表示的话得高位补零,so...
程序的效果应该像win2k的记事本,能够在不同语言的2k环境下显示,现在关键的是我找不到可以用的控件,我查过资料除了2k和xp的记事本支持unicode编码文件外,其他的都不支持,包括wordpad,9x的记事本也不支持。


柯本 2003-08-19
  • 打赏
  • 举报
回复
我错了:试试这个:
TStringList *p=new TStringList();
p->LoadFromFile("t.txt");
for(int i=0;i<p->Count;i++)
Memo1->Lines->Add(WideCharToString((wchar_t *)p->Strings[i].c_str()+1));
delete p;
柯本 2003-08-19
  • 打赏
  • 举报
回复
win2k 直接用RichEdit的LoadFromFile
esiedull 2003-08-19
  • 打赏
  • 举报
回复
注意在程序中处理从文件中读出的字符串的时候用wchar_t,Unicode macros,widechar....
等来处理。你查查编译器带的文挡。说的很清楚
zhanguan 2003-08-19
  • 打赏
  • 举报
回复
up
zjqyb 2003-08-19
  • 打赏
  • 举报
回复
sorry:!!!
TMemoryStream *ss;
ss=new TMemoryStream();
ss->LoadFromFile("c:\\test.dat");
ss->Position=ss->Size;
ss->Write("\0\0",2) ;
Memo1->Lines->Add(WideCharToString((wchar_t *)ss->Memory+1));
delete ss;
柯本 2003-08-19
  • 打赏
  • 举报
回复
我试过zjqyb() 的方法有问题
zjqyb 2003-08-19
  • 打赏
  • 举报
回复
TMemoryStream *ss;
ss=new TMemoryStream();
ss->LoadFromFile("c:\\test.txt");
ss->Position=0;
Memo1->Lines->Add(WideCharToString((wchar_t *)ss->Memory));
delete ss;
柯本 2003-08-19
  • 打赏
  • 举报
回复
Richedit->Lines->LoadFromFile
不过,上面的方法都有些小问题,如下的测试通过!
FILE *fp=fopen("t.txt","rb");
fseek(fp,0,SEEK_END);
int fz=ftell(fp);
fseek(fp,0,SEEK_SET);
char *buff=new char[fz];
fread(buff,1,fz,fp);
fclose(fp);
Memo1->Lines->Add(WideCharToString((wchar_t *)buff+1));
delete buff;

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧