Delphi实现同类型文档自动合并

燃烧sheng命

燃烧sheng命

2016-01-29 14:29

Delphi实现同类型文档自动合并,Delphi实现同类型文档自动合并
  最近,买了一张英语900句的学习光盘,因为没有相应的书面文字材料,就想自己将光盘中的文档提取出来,可一打开光盘,发现虽然每一句都有相应的详细文字材料,但每一句都单独存放在一个独立的RTF文档中(Sentence001.rtf至Sentence900.rtf),使用起来非常麻烦,于是就想将所有900句句型的文字材料合并到一起,即将900个独立的文档合并为一个文档。

  2.解决方法

  2.1 常规方法

  首先想到的方法就是利用Word的文档合并功能,即将另一篇 Word 文档插入到当前打开的文档中的方法。具体操作步骤为:

  ① 打开sentence001(在打开文件的对话中,文件类型选RTF格式)。

  ② 将光标定位到文档末尾。

  ③ 单击"插入"菜单中的"文件…"菜单项。

  ④ 在打开的插入文件对话框中,"文件名"框中输入要插入文件的名称:如sentence002.rtf

  这样就将前两句句型所在的两个文档合并成一个文档,并以sentence001.rtf存在。显然,只要不断地重复上述过程,最终肯定会将分散在900个文档中的900句句型合并在一个文档中。过程虽然简单,却非常费时,因此只适用于少数文档的合并操作。

  2.2 Delphi在文档合并中的应用

  考虑到:

  (1) 要合并的每个文件名均以"sentence"开头,后分别接001、002,…,900,非常有规律。

  (2) 合并时,每次都是将新文档的内容添加在原文档的末尾,也即插入在原文档的最后,插入位置固定。

  于是就思考有没有更快捷的办法,而且最好让计算机自动帮助完成整个合并过程。

  ①思路:在Delphi中,选择一个能接受和处理多行文本的控件,首先将sentence001.rtf的内容读入到其中,然后循环,依次将sentence002.rtf、sentence003.rtf中内容读入并追加到末尾,最后再将该控件的内容保存到另一个文件中。

  由于要合并的每个文档内容均为多行文本,且使用了多种字体和格式,Standard页上的Memo组件显然不合适,于是选用Win32页上RichEdit组件。

  RichEdit组件的主要特性和方法如下:

  属性Lines

  声明:property Lines:Tstrings;

  可以通过这个属性访问每一行,它是一个Tstrings对象,TStrings 类的方法,如Count、 Add、Delete 、Replace、LoadFromFile 、SaveToFile都可以用于Lines文本行的处理。其中:

  LoadFromFile方法的声明为:procedure LoadFromFile(const FileName: string); virtual;
其作用是从FileName指定的文件中读取列表。

  SaveToFile方法的声明为:procedure SaveToFile(const FileName: string); virtual;
其作用为将列表中的串保存到FileName 指定的文件中。

  属性PlainText

  声明:property PlainText:Boolean;

  用于设置从文件中读取文本或把文本写到文件时以哪种格式进行,设为False表示RTF格式,设为True表示普通文本格式。

  方法Clear

  声明:procedure Clear; override;

  清除所有文本(用空串替换所有文本)。若仅清除被选择的部分文本,要用ClearSelection方法。

  方法SelectAll

  声明:procedure SelectAll;

  选择组件中的所有文本,若只选择部分文本,使用SelStart和SelLength 属性。

  方法CopyToClipboard

  声明:procedure CopyToClipboard;

  调用CopyToClipboard方法是用被选择的文本替换剪贴板内容。如果没有选择任何文本, CopyToClipbard方法什么也不做,也不会清除剪贴板内容。

  方法PasteFromClipboard

  声明:procedure PasteFromClipboard;

  调用PasteFromClipboard方法是用剪贴板内容替换被选择的文本或在光标处插入剪贴板内容,若剪贴板无内容,则该方法什么也不做。


展开更多 50%)
分享

猜你喜欢

Delphi实现同类型文档自动合并

Delphi
Delphi实现同类型文档自动合并

Word2024如何实现多个文档合并

word
Word2024如何实现多个文档合并

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Delphi中实现DBGrid列宽度自动调整

编程语言 网络编程
Delphi中实现DBGrid列宽度自动调整

Java中合并XML文档的设计与实现

编程语言 网络编程
Java中合并XML文档的设计与实现

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

按钮怎样实现Word文档自动滚动

word
按钮怎样实现Word文档自动滚动

用Delphi实现选单的自动隐藏功能

Delphi
用Delphi实现选单的自动隐藏功能

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Delphi编程中Http协议应用(一)

Delphi编程中Http协议应用(一)

基于mysql的bbs设计(一)

基于mysql的bbs设计(一)
下拉加载更多内容 ↓