-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
FileRead() и файлы .doc
Добрый день! Есть такой скрипт:
Код:
$FilePath="c:\word.doc"
$TextToWrite="Hello! This is some text!"
_FileCreate ( $FilePath )
$Open=Fileopen($FilePath,1)
FileWrite($FilePath,$TextToWrite)
FileClose($Open)
$FileRead=FileRead($FilePath)
FileDelete($FilePath)
msgbox(0,"AutoIT",$FileRead)
Здесь я создаю вордовский файл и пишу в него что-то через скрипт, потом читаю - все работает нормально. Но как только я пытаюсь прочитать уже существующий файл ворд, в мсгбоксе вылезает нечитабельное нечто:
Код:
msgbox(0,"AutoIT",$PathToExistingFile)
Почему файл не читается? Если его открыть через ворд, то там нормальный английский текст. Пробовал делать с FileOpen($PathToExistingFile,0) - не помогает.
|
потому что текстовый файл вордом открыть можно, а вот обратно - нет.
пользуй Word.au3
|
Ты попробуй открыть Word`овский DOC блокнотом ... и сразу поймёш в чём дело :)
|
Какую именно функцию юзать? Там нет ничего вроде _WordRead() :)
|
А в этом разделе все функции не судьба посмотреть?
Код:
#include <Word.au3>
$oWordApp = _WordCreate ("")
$oDoc = _WordDocOpen ($oWordApp, @ScriptDir & "\Test.doc")
|
Цитата:
Цитата Medic84
А в этом разделе все функции не судьба посмотреть?
Код:
#include <Word.au3>
$oWordApp = _WordCreate ("")
$oDoc = _WordDocOpen ($oWordApp, @ScriptDir & "\Test.doc")
------- »
|
А дальше как?
FileRead($oDoc) не получается прочитать. А чем тогда?
P.S. Мне надо не открыть файл ворд, а присвоить его содержание переменной.
|
Я нашел способ)
Код:
$FilePath1="путь к существующему файлу"
$FilePath2="такой же путь к файлу, но с расширением .txt"
$oWordApp = _WordCreate ("",0,0)
$oDoc = _WordDocOpen ($oWordApp,$FilePath1)
_WordDocSaveAs($oDoc,$FilePath2,2)
$FileRead=FileRead($FilePath2)
msgbox(0,"AutoIT",$FileRead)
_WordQuit($oWordApp)
_WordQuit($oDoc)
filedelete($FilePath2)
P.S. Кстати через filecopy($FilePath1,$FilePath2) не прокатило)
|
evg64, молодец. любознательный ум это круто :up
|
evg64, надеюсь у Вас не 100Mb-ные файлы :). А почему не так?!
Код:
#include <Word.au3>
AutoItSetOption("MustDeclareVars", 1)
Local $sSourceFile = "c:\Temp\0001.doc"
Local $oWord = _WordCreate($sSourceFile, 0, 0)
Local $oDoc = _WordDocGetCollection($oWord, 0)
MsgBox(0, "Document text", $oDoc.Range.Text)
_WordQuit($oWord, 0)
Exit(0)
|
Потому что не знаю, как устроен ворд со всеми командами типа .Range.Text :)
А в МСДН находить эту инфу все никак не научусь)
|
Цитата:
Цитата evg64
А в МСДН находить эту инфу все никак не научусь) »
|
не знаю как с вордом дело обстоит, но в Экселе очень много свойств и методов объектов, собственно как и их названия и родительские объекты находил с помощью макросов. то есть начинаешь писать макрос с нужными тебе объектами, делаешь нужные действия, и смотришь код макроса. очень сильно помогает
|
evg64, MSDN тут как раз необязателен: достаточно встроенной справки по языку целевого приложения Office (только вызывать её желательно непосредственно из редактора VBA; позже, когда начнёте ориентироваться в объектной модели приложения — можно быстро добираться до нужного раздела через поиск на панели инструментов/области задач, сразу набирая требуемое имя объекта/свойства/метода/события).
|
Время: 12:23.
© OSzone.net 2001-