如何读出RTF、文本文件的每一个汉字、字母、数字、换行符、回车符?并向Canvas一个个地画出。(50分)

  • 主题发起人 主题发起人 zouming
  • 开始时间 开始时间
Z

zouming

Unregistered / Unconfirmed
GUEST, unregistred user!
要求:
1、读出的每一个汉字、字母、数字等保存在一个临时变量中;
2、在Canvas中,利用TextOut()读出临时变量的字符一个个分别画出,不能一下子画出字符串(多个字符);
3、遇换行符、回车符不显示,而是做换行的操作。
 
如果要简单,用TRichEdit.LoadFromFile('???.RTF');
TRichEdit.Lines就是您所要的东西了。
如果您要重画的内容包含字体属性,那您要去看看RTF文件的结构了,
虽然也是文本文件,但是您要逐个控制符分析的!如果文件不是
UNIONCODE,汉字是以 /'xx/'xx 形式存放....
 
那么数字、字母、换行符、回车符又是以什么方式存放的?
 
这不是问题,关键是格式还要不要了
 
当然要格式,要不,那不是表错情?!
 
//数字、字母、换行符、回车符又是以什么方式存放的
数字、字母 原样存放,回车换行:/par

建议你看看程序员大本营里面的 rtf 文件格式的说明
 
另外,汉字也有可能是原样存放的,如果在 font table 里面有这样的定义:
{/fonttbl{/f0/fmodern Courier New;}{/f1/fmodern/fcharset134 宋体;}
那么只要使用f1字体,汉字即使原样存放也可以正常显示:{/f1 演示}
因为f1的字符集是fcharset134 (134好象是简体中文的编号吧,记不太清楚了)
 
我想请问一下,是否数字、字母的高位用0来补足?
 
数字、字母不是原样存放的吗?不存在高位、低位的问题
对于 /'xx/'xx 形式存放的汉字则是(高位用0来补足)
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部