Word 有关的问题(在线等待中,问题解决马上给分)(100分)

  • 主题发起人 主题发起人 c2008
  • 开始时间 开始时间
C

c2008

Unregistered / Unconfirmed
GUEST, unregistred user!
如何读取word中的每一行文本,并最后一个字判断是否是要求的文字,若不是折换行。
 
你的意思就是逐段读取吧,
用paragraphs集合和paragraph对象应该就可以了可以吧
 
呵呵,用word的字属性可以,不过实在太慢了!
 
to hhxxj
能说的详细一点吗?
 
给出一个例,按你的需要自行修改。
procedure TForm1.Button3Click(Sender: TObject);
var
Itemindex, format, TempEmpty: olevariant;
filename, passworddocument, passwordtemplate: olevariant;
writepassworddocument, writepasswordtemplate: olevariant;
confirmconversions, readonly, revert, addtorecentfiles: olevariant;
n:byte;
begin
if not OpenDialog1.execute then
exit;
{open document}
filename := OpenDialog1.filename;
confirmconversions := false;
readonly := false;
addtorecentfiles := false;
revert := true;
passworddocument := '';
passwordtemplate := '';
writepassworddocument := '';
writepasswordtemplate := '';
format := wdopenformatdocument;
Wordapplication1.documents.open(filename, confirmconversions,
readonly, addtorecentfiles, passworddocument, passwordtemplate,
revert, writepassworddocument, writepasswordtemplate, format, TempEmpty, TempEmpty);
itemindex := 1;
doc.connectto(Wordapplication1.documents.item(itemindex));
wordapplication1.visible := true;
ARange := Doc.Range(EmptyParam, EmptyParam);
Pars := Doc.Paragraphs;
n:=Pars.Get_Count;//打开的文档共有n个段
ARange := Pars.Item(2).Range;
showmessage(Arange.text);//显示第二段的内容--例
end;
 
我的意思是读取word中的没一行的内容(以行为单位)
 
//显示word中的每一行的内容(以行为单位)
procedure GotoFirstPage(WrdApp: TWordApplication);
var
WdUnit, WdCount, wdExtend: OleVariant;
begin
WdUnit := wdScreen;
wdCount := 10;
wdExtend := EmptyParam;
while true do
if WrdApp.Selection.MoveUp(WdUnit, wdCount, wdExtend) = 0 then break;
end;

procedure TForm1.ShowLineText;
var
n0, n, nn: integer;
WdUnit, WdCount, Extend: OleVariant;
begin
n:=1;
GotoFirstPage(Wordapplication1);
while n > 0 do
begin
n0 := Wordapplication1.Selection.Get_start;
WdUnit := wdLine;
wdCount := 1;
Extend := EmptyParam;
n:=Wordapplication1.Selection.MoveDown(WdUnit, wdCount, Extend);
if n > 0 then
nn := Wordapplication1.Selection.Get_start
else
begin
WordApplication1.ActiveDocument.Select;
nn := Wordapplication1.Selection.Get_End_;
end;
ARange.SetRange(n0, nn);
showmessage(ARange.text);
end;
end
 
调用word的save as功能存储为txt文件,然后分析txt文件,这样效率会高很多。
 
后退
顶部