|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Сохранение открытого документа OpenOffice
Добрый день! В интернете нашел процедуру открытия файла через OpenOffice для последующей замены текста.
Процедура отрабатывает, но не сохраняет файл при его закрытии. Подскажите пожалуйста что отсутствует в данной процедуре? Код:
procedure TFExpertzakl.OpenOfficeReplace(const AFileURL: string; ASearch: string; const AReplace: string); var StarOffice: Variant; StarDesktop: Variant; StarDocument: Variant; FileReplace: Variant; FileParams: Variant; FileProperty: Variant; VariantArray: Variant; begin StarOffice := CreateOleObject('com.sun.star.ServiceManager'); StarDesktop := StarOffice.CreateInstance('com.sun.star.frame.Desktop'); FileParams := VarArrayCreate([0, 0], varVariant); FileProperty := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue'); FileProperty.Name := 'Hidden'; FileProperty.Value := False; FileParams[0] := FileProperty; StarDocument := StarDesktop.LoadComponentFromURL(AFileURL, '_blank', 0, FileParams); FileReplace := StarDocument.CreateReplaceDescriptor; FileReplace.SearchCaseSensitive := False; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); StarDocument.ReplaceAll(FileReplace); // где то тут нужно его сохранить перед закрытием StarDocument.Close(True); StarDesktop.Terminate; StarOffice := Unassigned; end; |
#2
|
|||
|
|||
Что-то типа такого должно быть:
Код:
StarDocument.Store(); |