<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Поиск документа "Word" по ключевому слову]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11520</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11520&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Поиск документа "Word" по ключевому слову».]]></description>
		<lastBuildDate>Fri, 22 Apr 2016 22:20:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Поиск документа "Word" по ключевому слову]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=102831#p102831</link>
			<description><![CDATA[<p>Задача решена. Скрипт очень мощный. Можно искать файл по нескольким словам или числам. Производительность супер!<br /></p><div class="codebox"><pre><code>
InputBox, tip, Выберите тип файла, Введите расширение файла`,`nпо умолчанию &quot;doc&quot;
if tip=
tip=doc
MsgBox &quot;.%tip%&quot;
FileSelectFolder, SFolder,  ,  , Выберите папку для поиска
if SFolder=
return
InputBox, wd, Ввод ключей, Введите ключевые слова:`n(ввод через запятую-`nнапример:&quot;желтый`,января`,Иванов`,563&quot;)
if wd=
return
Loop, parse, wd, `, ;узнаем количество ключей
{
if (A_Index=1)
Name:=A_LoopField
++N1
} 
MsgBox, 4, Запуск поиска, Все готово для поиска`nВы хотите продолжить?`n(Нажмите Да или Нет)
IfMsgBox No 
return

Loop, %SFolder%\*.%tip%, , 1 ; Рекурсия в подпапки.
{
DirFile=%A_LoopFileFullPath%
oWord:=ComObjCreate(&quot;Word.Application&quot;)
Word:=oWord.Documents.Open(DirFile)
text:=word.ActiveWindow.Document.Range().Text
Word.Close()
oWord.Quit()
N2=
	Loop, parse, wd, `, ;подбираем ключи
	{
	IfInString, text, %A_LoopField%
	++N2
	}
	
	if (N2=N1)
	{
	FileAppend, %word%`n%DirFile%`n, %A_Desktop%\Поиск %Name%.txt
	Break
	}
}
if (N2=N1)
MsgBox Поиск завершен`nданные сохранены`nна рабочем столе`nв файле Поиск %Name%
else
MsgBox Файл не найден
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (sabir.yanin2014)]]></author>
			<pubDate>Fri, 22 Apr 2016 22:20:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=102831#p102831</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск документа "Word" по ключевому слову]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=102811#p102811</link>
			<description><![CDATA[<div class="codebox"><pre><code>Word:=oWord.Documents.Open(A_LoopFileFullPath)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 21 Apr 2016 23:19:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=102811#p102811</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск документа "Word" по ключевому слову]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=102809#p102809</link>
			<description><![CDATA[<p>Нашел на <a href="http://forum.script-coding.com/viewtopic.php?id=10325">форуме </a>как извлекать текст из word:<br /></p><div class="codebox"><pre><code>
oWord := ComObjCreate(&quot;Word.Application&quot;)
Word:=oWord.Documents.Open(&quot;C:\Users\Андрей\Desktop\N2\Новая папка\1.docx&quot;)
text:=word.ActiveWindow.Document.Range().Text
Word.Close()
oWord.Quit()
msgbox,% text
</code></pre></div><p>Все работает отлично!<br />Применил код в своем скрипте:<br /></p><div class="codebox"><pre><code>
FileSelectFolder, SF,  ,  , Выберите папку для поиска
if SF=
return
InputBox, w1, Поиск слова, Введите слово
if w1=
return
MsgBox Данные введены!`n Для начала поиска`nнажмите &quot;OK&quot;
Loop, %SF%\*.docx, , 1 ; Рекурсия в подпапки.
{
V=%A_LoopFileFullPath%
oWord:=ComObjCreate(&quot;Word.Application&quot;)
Word:=oWord.Documents.Open(&quot;%A_LoopFileFullPath%&quot;)
text:=word.ActiveWindow.Document.Range().Text
Word.Close()
oWord.Quit()

IfInString, text, %w1%
{
FileAppend, %V%`n, %A_Desktop%\Поиск %w1%.txt
MsgBox Поиск завершен`nданные сохранены`nна рабочем столе`nв файле Поиск %word%
Break
}
}
MsgBox Выход 
</code></pre></div><p>Скрипт загружается начинает работать, а как доходит до строки:<br /></p><div class="codebox"><pre><code>
Word:=oWord.Documents.Open(&quot;%A_LoopFileFullPath%&quot;)
</code></pre></div><p>Выдает ошибку о том что не может найти файл. Не разрешает ссылаться на переменную?</p>]]></description>
			<author><![CDATA[null@example.com (sabir.yanin2014)]]></author>
			<pubDate>Thu, 21 Apr 2016 23:01:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=102809#p102809</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск документа "Word" по ключевому слову]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=102806#p102806</link>
			<description><![CDATA[<p><strong>wisgest</strong>, можно ли модифицировать данный скрипт так, чтобы он искал заданный список файлов с расширением .mov и копировал их в указанную директорию? Т.е. подразумевается поиск не всех файлов данного типа, а конкретных файлов по имени.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Thu, 21 Apr 2016 21:29:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=102806#p102806</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск документа "Word" по ключевому слову]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=102785#p102785</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>При чтении строк файла получается &quot; PK&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Эь•7&quot;( ужас!)<br />Происходит это из-за того что word закодирован в ANSI</p></blockquote></div><p>Документы MS Office в новом формате (с расширениями заканчивающимися на «x») — это zip-архивы; в свою очередь содержат внутри себя xml-документы. (Ну а документы в старом формате читать как plain text тоже не очень хорошо…)</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Thu, 21 Apr 2016 16:18:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=102785#p102785</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Поиск документа "Word" по ключевому слову]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=102784#p102784</link>
			<description><![CDATA[<p>Жизнь заставила меня написать програмку для поиска файлов &quot;Word&quot; по ключевому слову.<br />Расположение файла неизвестно. Он может быть в любой из подпапок с другими подпапками.<br />Известна только корневая папка. Написал програмку, она прекрасно ищет&nbsp; текстовые документы (.txt):<br /></p><div class="codebox"><pre><code>
FileSelectFolder, SF,  ,  , Выберите папку для поиска
if SF=
return
InputBox, word, Поиск слова, Введите слово
if word=
return
MsgBox Данные введены!`n Для начала поиска`nнажмите &quot;OK&quot;
Loop, %SF%\*.txt, , 1 ; Рекурсия в подпапки.
{
V=%A_LoopFileFullPath%
	Loop, read, %V%
	{
    IfInString, A_LoopReadLine, %word%
		{
		FileAppend, %V%`n, %A_Desktop%\Поиск %word%.txt
		Break
		}
	}
}
  
MsgBox Поиск завершен`nданные сохранены`nна рабочем столе`nв файле Поиск %word%
</code></pre></div><p>Но при использовании ее(программы)&nbsp; для поиска документов &quot;Word&quot; (заменяем&nbsp; .txt на .docx)<br /></p><div class="codebox"><pre><code>
Loop, %SF%\*.docx, , 1 ; Рекурсия в подпапки
</code></pre></div><p>Программа сходит с ума. При чтении строк файла получается &quot; PK&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ! Эь•7&quot;( ужас!)<br />Происходит это из-за того что word закодирован в ANSI а скрипт читает в кодировке Unicod<br />Как научить AHK понимать Word не знаю. Помогите пожалуйста, очень нужно для работы.</p>]]></description>
			<author><![CDATA[null@example.com (sabir.yanin2014)]]></author>
			<pubDate>Thu, 21 Apr 2016 16:07:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=102784#p102784</guid>
		</item>
	</channel>
</rss>
