Что нового

открытие DOS документа в word

Sergeich

Новичок
Сообщения
10
Репутация
0
существует проблема:
есть файл с содержимым в 866 кодировке.
при открытии вручную через word появляется окошко "преобразование файла", а когда открываешь программно,
Код:
#include <Word.au3>
$oWordApp = _WordCreate ("")
$oDoc = _WordDocOpen ($oWordApp, @ScriptDir & "\Test.doc")

открывается в win кодировке... подскажите, может кто знает как =)
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
попробуй с параметром открывать
Код:
#include <Word.au3>

$oWordApp = _WordCreate ("")
For $i=0 to 8 Step 1
$oDoc = _WordDocOpen ($oWordApp, @ScriptDir & "\Test.doc","",$i)
MsgBox(0,"", "документ открыт с параметром $i = "& $i)
Next
_WordDocClose($oWordApp)

может какой подойдет к твоему документу
 
Автор
Sergeich

Sergeich

Новичок
Сообщения
10
Репутация
0
пробывал, не подходит, решил проблему другим способом. спс за старания
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Sergeich
другой способ настолько секретный, что постеснялся тут написать? ;)
 
Автор
Sergeich

Sergeich

Новичок
Сообщения
10
Репутация
0
не секретный. просто использовал ScriptWriter и как бы прошел весь этап запуска. :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Sergeich
Тема решена?
Не стесняемся, кнопка не кусается ;)
и еще, укажи точную(ые) версии AutoIt в профиле. В будущем предотвратит от многих вопросов
 

YOgen

Знающий
Сообщения
58
Репутация
5
Так а возможно ли все-таки реализовать открытие dos-документа средствами AutiIt (без всяких скрипт-райтеров)?
 

YOgen

Знающий
Сообщения
58
Репутация
5
Вот пример файла.
Но меня интересует не просто только этот перекодировать разумеется, а сам принцип :whistle:
 

axlwor

Скриптер
Сообщения
657
Репутация
147
как вариант
1. читаем файл в строку
2. перекодируем, если видны крякозяблики. на форуме найди encoding.au3 (или как то так)
3. открываем ворд. вставляем строку

ps. завтра, если будет время, почитаю про ворд. может там какие функции есть :scratch:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
YOgen,
Попробуйте так, у меня (Word 2003) работает.
Код:
#include <Word.au3>
#include <Encoding.au3>

$sFile = @ScriptDir & '\04_pech_2608.txt'

$hFile = FileOpen($sFile)
$sText = FileRead($hFile)
FileClose($hFile)
$sText = _Encoding_866To1251($sText)
$hFile = FileOpen($sFile, 130)
FileWrite($hFile, $sText)
FileClose($hFile)

$oWordApp = _WordCreate('')
$oDoc = _WordDocOpen($oWordApp, $sFile)
 

YOgen

Знающий
Сообщения
58
Репутация
5
madmasles,
Спасибо! Все отлично получилось. :ok:

Вот только почему открывается сначала пустой документ (новый), а потом еще и открываемый документ? Т.е. получается - два окна word-а.

(Win7, Office 2007)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
YOgen [?]
Вот только почему открывается сначала пустой документ (новый), а потом еще и открываемый документ
Это потому, что я невнимательно справку читал. :smile:
Поменяйте на
Код:
$oWordApp = _WordCreate($sFile)
 

YOgen

Знающий
Сообщения
58
Репутация
5
Ай красота ;D
Я думаю что тему можно перемещать в какие-нибудь "Готовые решения" (уж простите, не знаю хорошо структуру сайта :-[ )
Все отлично открывается.

В итоге (за что спасибо madmasles) код выглядит следующим образом:

Код:
#include <Word.au3>
#include <Encoding.au3>

$sFile = @ScriptDir & '\xxx.txt' ; xxx.txt - требуемый файл в Dos-кодировке

$hFile = FileOpen($sFile)
$sText = FileRead($hFile)
FileClose($hFile)
$sText = _Encoding_866To1251($sText)
$hFile = FileOpen($sFile, 130)
FileWrite($hFile, $sText)
FileClose($hFile)

$oWordApp = _WordCreate($sFile)
$oDoc = _WordDocOpen($oWordApp, $sFile)
 
Верх