![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить из doc определеные строки [D7, XP]
Dimich1978 © (2008-07-23 13:11:00)Все открыл я файл из дЕльфи вордовский, расставил поля, теперь не могу удалить определенные строки из файла средствами Делфи.
Уточнение:
строки которые надо удалять всегда постоянны.
необходимо удалить строку и на место её вставить определенную строку из другого файла.
Какую операцию нужно сотворить. Чтобы это можно было сделать.
Вот мой код
Помогите ламеру....
function CentimetersToPoints(a:Single):Single;
begin
{Converts a measurement from centimeters to points (1 cm = 28.35 points).
Returns the converted measurement as a Single.
Syntax
expression.CentimetersToPoints(Centimeters)
expression Optional. An expression that returns an Application object.
Centimeters Required Single. The centimeter value to be converted to points.}
Result:=28.35*a;
end;
Function VisibleWord (visible:boolean):boolean;
begin
VisibleWord:=true;
try
W.visible:= visible;
except
VisibleWord:=false;
end;
End;
Function CreateWord:boolean;
begin
CreateWord:=true;
try
W:=CreateOleObject('Word.Application');
W1:=CreateOleObject('Word.Document')
except
CreateWord:=false;
end;
End;
Function FindAndPasteTextDoc
(findtext_,pastetext_:string): boolean;
begin
FindAndPasteTextDoc:=true;
try
W.Selection.Find.Forward:=true;
W.Selection.Find.Text:= findtext_;
if W.Selection.Find.Execute then begin
W.Selection.Delete;
W.Selection.InsertAfter (pastetext_);
W.
end else FindAndPasteTextDoc:=false;
except
FindAndPasteTextDoc:=false;
end;
End;
procedure TForm1.Button2Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
CreateWord;
W.Application.Documents.Open(opendialog1.FileName);
VisibleWord(true);
W.ActiveDocument.PageSetup.TopMargin := CentimetersToPoints(0.75);
W.ActiveDocument.PageSetup.BottomMargin := CentimetersToPoints(0.2);
W.ActiveDocument.PageSetup.LeftMargin := CentimetersToPoints(0.5);
W.ActiveDocument.PageSetup.RightMargin := CentimetersToPoints(0.5);
W.ActiveDocument.PageSetup.Gutter := CentimetersToPoints(0);
W.ActiveDocument.PageSetup.HeaderDistance := CentimetersToPoints(1.27);
W.ActiveDocument.PageSetup.FooterDistance := CentimetersToPoints(1.27);
end;
end;
DFT (2008-07-23 15:16:00) [1]Вот выдрал из VBA:
к примеру стоит наш текущий курсор в начале документа, и необходимо как-то изменить третью строку...
Selection.MoveDown Unit:=wdLine, Count:=3 //перемещаемся на три строки вниз
Selection.EndKey Unit:=wdLine, Extend:=wdExtend //выделяем всю строку
Selection.TypeText Text:="123" // вводим новый текст
Скорее всего только так. Насколько я знаю, доступа к отдельным строкам документа через программный интерфейс нет.
На будущее. Если нужно что-нибудь программно реализовать, и не знаешь как, то воспользуйся записью макросов. Сделай все необходимые действия вручную (в режиме записи макроса), а потом посмотри на код, который сгененрировался (Alt+F11).