C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Word и сохранение под нужным именем
id12
Отправлено: 28.09.2005, 15:55


Ученик-кочегар

Группа: Участник
Сообщений: 10



Доброго времени суток!

Я умею делать так
A_FileName="c:\\test.doc";
docs.OleProcedure("Open", A_FileName.c_str());
/*

*/
docs.OleProcedure("Save");

и Word охраняет изменения в файле test.doc, который он ранее окрыл и изменил

Подскажите как изменить последнию строчку, что бы он сохранил под другим именем?

Пробовал
docs.OleProcedure("Save", A_FileNameNEW.c_str());
и
docs.OleProcedure("SaveAs", A_FileNameNEW.c_str());
Итог — ругается и не сохраняет... sad.gif
Guest
Отправлено: 28.09.2005, 17:28


Не зарегистрирован







Все там же
Подсказка SaveAs
id12
Отправлено: 28.09.2005, 19:02


Ученик-кочегар

Группа: Участник
Сообщений: 10



QUOTE (Guest @ 28/09/2005, 17:28)
Все там же
Подсказка SaveAs

Я не нашел информацию по Вашей ссылке... sad.gif Неужели Вам трудно написать одну строчку кода? Я же не от безделья спрашиваю. Одна строчка!!!
AVC
Отправлено: 29.09.2005, 08:34


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
Неужели Вам трудно написать одну строчку кода? Я же не от безделья спрашиваю. Одна строчка!!

Ну ладно, раз вам лень думать
CODE

/*
typedef enum WdSaveFormat
{
 wdFormatDocument = 0,
 wdFormatTemplate = 1,
 wdFormatText = 2,
 wdFormatTextLineBreaks = 3,
 wdFormatDOSText = 4,
 wdFormatDOSTextLineBreaks = 5,
 wdFormatRTF = 6,
 wdFormatUnicodeText = 7,
 wdFormatEncodedText = 7,
 wdFormatHTML = 8
} WdSaveFormat;

Document.SaveAs
(FileName, FileFormat, LockComments, Password, AddToRecentFiles
,WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts
,SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter
)
*/
//Variant MWODoc — открытый в запущеном Word'е документ
AnsiString fnout = ExtractFilePath(Application->ExeName) + "aaa.rtf";
MWODoc.OleFunction("SaveAs", fnout, 6);
id12
Отправлено: 30.09.2005, 09:13


Ученик-кочегар

Группа: Участник
Сообщений: 10



Спасибо! Если честно, то это тоже не помогло. Пришлось делать грубо, копировать, переиминовывать, и только потом работать с этим файлом. По поводу Вашего высказывания, что мне лень думать, тут я позволю себе не согласиться, т.к. потратил кучу времени ковыряя эти функции. А программа лишь выдавала — "Неверная переменная". И поди там разбирись, какая переменная, где она неверна, в какой именно функции... Иногда даже грустно становилось.

В связи с этими размышлениями, возникает вполне закономерный вопрос — где взять документацию по этим функциям? Если Вам не трудно, расскажите где Вы взяли вот эту информацию:

typedef enum WdSaveFormat
{
wdFormatDocument = 0,
wdFormatTemplate = 1,
wdFormatText = 2,
wdFormatTextLineBreaks = 3,
wdFormatDOSText = 4,
wdFormatDOSTextLineBreaks = 5,
wdFormatRTF = 6,
wdFormatUnicodeText = 7,
wdFormatEncodedText = 7,
wdFormatHTML = 8
} WdSaveFormat;

Document.SaveAs
(FileName, FileFormat, LockComments, Password, AddToRecentFiles
,WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts
,SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter
)
*/

Лично у меня складывается впечатление, что эти функции как "черный ящик", ввел переменные, запустил, а потом если заработало — воспринимается как чудо, не заработало — приходится дальше эксперементировать и тратить кучу времени. Хотелось бы один раз понять логику, а не тупо использовать известные функции...

Если у Вас есть возможность и время, пожалуйста проконсультируйте меня.
AVC
Отправлено: 30.09.2005, 09:33


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
Если честно, то это тоже не помогло

Ошибка у вас где то в сишном коде. Пример рабочий.

QUOTE

По поводу Вашего высказывания, что мне лень думать, тут я позволю себе не согласиться, т.к. потратил кучу времени ковыряя эти функции

Скорее всего не то и не там ковыряли smile.gif . А "лень думать" относилось к записать макрос и проанализировать результат записи (если нужно нажимая F1 в редакторе VBA) и перевести на С

QUOTE

возникает вполне закономерный вопрос — где взять документацию по этим функциям? Если Вам не трудно, расскажите где Вы взяли вот эту информацию:

В хелпе на VBA посмотрел описание Document.SaveAs
В каталоге $(BCB)\Include нашел файл, в котором упоминается wdFormatRTF (Word_??.h) и посмотрел значения


Возвращаясь к началу
QUOTE

docs.OleProcedure("Save");
и Word охраняет изменения в файле test.doc, который он ранее окрыл и изменил
Подскажите как изменить последнию строчку, что бы он сохранил под другим именем?

Поменять функцию "Save" на "SaveAs"

Вернуться в Технологии COM/DCOM, ActiveX