原程序:
RichEditTransFile.Lines.Clear;
RichEditTransFile.PlainText:=False;
RichEditTransFile.Lines.LoadFromFile('d:\test.rtf');
RichEditTransFile.PlainText:=True;
RichEditTransFile.Lines.SaveToFile('d:\test.rtf.txt');
我企图用TStingList来处理:
StringList:=TStringList.Creat;
StringList.Clear;
StringList.Text:=GetFileText('d:\test.rtf)';
StringList.SaveToFile('d:\test.rtf.txt')
StringList.Free;
结果发现这样转存的纯文本文件是空的。
我想问问请问除了用RichEdit部件能处理.Rtf文件,还有什么部件或方法来处理呢?因为RichEdit部件有一个Bug,在WindowsMe系统下,这样转存一批RTF文件的第一个文件会带有格式,尽管我用了RichEditTransFile.PlainText:=True;在WindowsXP下这样转存一批RTF文件的第一个文件会变成二进制文件,用记事本打开时出现提示:“这个文件不是有效的文本文件,可能是二进制文件,是否转换并载入?”结果导致了原来RTF文件中设有隐藏的部分丢失。
RichEditTransFile.Lines.Clear;
RichEditTransFile.PlainText:=False;
RichEditTransFile.Lines.LoadFromFile('d:\test.rtf');
RichEditTransFile.PlainText:=True;
RichEditTransFile.Lines.SaveToFile('d:\test.rtf.txt');
我企图用TStingList来处理:
StringList:=TStringList.Creat;
StringList.Clear;
StringList.Text:=GetFileText('d:\test.rtf)';
StringList.SaveToFile('d:\test.rtf.txt')
StringList.Free;
结果发现这样转存的纯文本文件是空的。
我想问问请问除了用RichEdit部件能处理.Rtf文件,还有什么部件或方法来处理呢?因为RichEdit部件有一个Bug,在WindowsMe系统下,这样转存一批RTF文件的第一个文件会带有格式,尽管我用了RichEditTransFile.PlainText:=True;在WindowsXP下这样转存一批RTF文件的第一个文件会变成二进制文件,用记事本打开时出现提示:“这个文件不是有效的文本文件,可能是二进制文件,是否转换并载入?”结果导致了原来RTF文件中设有隐藏的部分丢失。
解决方案 »
- gdi+图像处理
- 请教 idHTTP接收网页源代码问题
- 用DELPHI作过完成端口的朋友请进
- 寻dephi控件详细说明,带例子的书
- 高等代数没学好,大家过来帮忙,有没有现成的对矩阵操作的函数库?
- ——在线等待:报“没有注册类别”是什么意思???
- 谁给一个桌面精灵的完整delphi源代码例子,本人500分相送!
- 如何打开一个可以预览Jpg,gif的Picture Dialog
- 原来问问题的那个贴子打不开了,再问一次,请班主不要删我的贴,是有关大图象在数据库中存取的问题
- 如何用ADOQuery1.Parameters动态生成/删除Parameters?
- 做一个中日文转换菜单,日文要在日文系统下正常显示。
- documentproperties 怎么没有生效?
楼主说的这么详细,想必已经经过了许多测试,好象我没有了办法。尽管如此,希望楼主想想别的办法,比如可以取RichEditTransFile.Lines.Text看看,不过这样笃定没有格式的。对于第一个会变成二进制文件的问题,可以采取更变态的手段(欺骗性的),比如首先转换一个无用的文件,然后转换需要的文件,最后将第一个转换的无用的文件删除掉(用程序自动删除,用户无感知)。当然以上都非好办法,我想这个问题有些冷,帮你Up!
这个是没有道理的,估计是你的代码问题!
To li_chengbin(瞌睡虫)我也知道这样没道理,而且这样的错误还是偶尔发生的,无法找到任何规律!所以我觉得不是我的操作系统有问题,就是Delphi的一个Bug,不过我在别的机器上测试也出现了同样的问题,所以我觉得它是个Bug。请问RichView组件实现我这个功能和RichEdit的方法一样吗?这个组建在选项卡里的什么地方啊?
顺便问一下:如果知道组件的名字,怎么最快找到他?(具体方法给忘记了)
var
fs : TFileStream;
s : string;
begin
fs := TFileStream.Create('temp.txt', fmCreate or fmOpenWrite);
richedit1.SelectAll;
s := richedit1.SelText;
richedit1.SelLength := 0;
fs.Write(PChar(s)^, Length(s));
freeandnil(fs);
end;
我试过了中,英文都可以,不用那么麻烦的