|
Модераторы: mihanik |
|
rudolfninja |
|
||||
Опытный Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
Приветствую всех.
MS Word умеет сохранять текстовый документ как PlainText, т.е. на выходе получается обычный текстовый документ с расширением .txt. Мне нужен макрос, который будет сам сохранять открытый документ в txt с кодировкой по умолчанию, то есть, чтоб пользователь вообще ничего не делал. Запустил макрос из коммандной строки и получил на выходе текстовый файл, например, в корне диска C. Чисто теоретически, макрос должен быть не сильно сложный. Нашел в инетренете такой код:
Но при запуске этого макроса предлагается выбрать кодировку, а мне надо установить, чтоб кодировка была по умолчанию. Идея такова: я пишу программу на C++, в нее надо загрузить odc файл, вытянуть из него текст и дальше его обработать. Но в с++ нет встроенных средств по работе с doc, поэтому я решил посредством MS Word конвертировать doc файл в txt и обрабатывать его. То есть, по сути я в cmd выполняю:
и у меня появляется текстовый файл. Еще желательно добавить в макрос закрытие оффиса после сохранения в текст. В общем, поделитесь, пожалуйста, макросом, который будет все это делать. Спасибо. |
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Начни с того, что убери нахрен все параметры, которым ты присваиваешь значения по умолчанию, оставь только реально необходимые (имхо FileName и FileFormat).
Добавлено через 3 минуты и 5 секунд PS. Тебе точно нужна кодировка msoEncodingWestern ? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
rudolfninja |
|
|||
Опытный Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
Убарл все лишнее, получилось:
Кодировка...а разве кодировка по умолчанию msoEncodingWestern? Тут у меня еще вопорос возник, как мне потом этот макрос сохранить? Потому что при открытии сохраненного .dotm файла появляется пустой документ. Если у него запустить Visual Basic, то в дереве проекта не видно созданного модуля и его надо снова создавать. |
|||
|
||||
Akina |
|
||||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Не по умолчанию, а системная (вернее, по умолчанию берётся именно системная - кстати, фиг знает, какая на твоём компе системная). Но ты-то в явной форме задаёшь
А это и есть msoEncodingWestern. А msoEncodingCyrillic, коя тебе, вероятно, нужна - это 1251. И окно у тебя появляется скорее всего потому, что кодировки 1252 у тебя в системе тупо нет, для неё идёт substitution - вот Ворд тебя и спрашивает, чё с этим делать. Да сохранить этот макрос в Normal.dot, а не в документе. И он будет тебе доступен из любого документа на этом компе (при условии, что нет дублирования имён, само собой). А почему ты его сохраняешь в таком формате-то? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
rudolfninja |
|
|||
Опытный Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
Про кодировку понял, спасибо.
Не вариант, мне надо, чтоб макрос лежал рядом с исполняемым файлом моей программы и я мог запустить его на любом компе, поэтому надо сохранить его отдельно. Ну как по-умолчанию Word предложил, я так и сохранил. Возможно, я вообще неправильно макрос создаю: В Word'е выбрал New-My templates-Blank Document (предварительно указав, что blank type = template). |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Тогда сохраняй его непосредственно в этом документе (и сохраняй сам документ в .DOCM). Он будет доступен в этом документе и всех его копиях. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
rudolfninja |
|
|||
Опытный Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
То есть, я не смогу открыть любой документ на любой машине и с помощью своего сохраненного макроса сохранить этот документ как текст?
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Сохранённого ГДЕ? Его ветром не надует, он должен на целевой станции присутствовать, причём в списке активных макросов. А таковые могут взяться только из двух мест - из самого файла и из локального файла шаблонов. Есть, конечно, и третий вариант - размещение файла с макросом в доступном месте и подключение его к конечному файлу как шаблон (т.е. в файле будет не сам макрос, а ссылка на него)... но при его недоступности будут проблемы. А вот в этом случае у тебя вариантов вообще нет - только локальный normal.dot. Распространяй макрос в общие шаблоны по всем нужным станциям. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
rudolfninja |
|
|||
Опытный Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
Ясно, спасибо. Тему можно закрывать.
|
|||
|
||||
Правила форума "Программирование, связанное с MS Office" | |
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |