<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Поиск документа Word по ключевым словам в документе]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11694&amp;type=atom" />
	<updated>2016-06-09T19:27:25Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11694</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105051#p105051" />
			<content type="html"><![CDATA[<p><strong>sabir.yanin2014</strong><br />Если брать VBS, я бы начал с <a href="http://narfu.ru/university/library/books/0693.pdf">Грошева</a>.</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2016-06-09T19:27:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105051#p105051</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105050#p105050" />
			<content type="html"><![CDATA[<p><strong>Flasher</strong>, спасибо! <br />Скачал учебник Гюнтера Борна &quot;Microsoft Windows Script Host 2.0. Руководство разработчика&quot;, буду грызть гранит науки.</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-06-09T19:16:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105050#p105050</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105048#p105048" />
			<content type="html"><![CDATA[<p><strong>sabir.yanin2014</strong><br />Почему мы? Код прочёл, там всё доходчиво.</p><p>Поди, английский - второй родной, коли учебник на нём <span class="bbu">понятный</span>? <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /> Да и форум - это не учебник всё-таки.<br />Поиск стоило бы начать <a href="http://script-coding.com/">отсюда</a>, <a href="http://forum.script-coding.com/viewtopic.php?id=10">отсюда</a> и <a href="http://safezone.cc/threads/literatura-po-vbscript-jscript.23825/">отсюда</a>, ну, и <a href="http://gsbelarus.com/gs/wiki/index.php/VBScript._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_VBScript">сюда</a>/<a href="http://gsbelarus.com/gs/wiki/index.php/VBScript._%D0%9F%D1%80%D0%B5%D0%B4%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D1%8B">сюда</a> зайти не помешает. <a href="http://citforum.ru/internet/vbscript/vbscript1.shtml">Сравнение</a> (<a href="http://www.compdoc.ru/internet/vbscript/progbases/">аналог</a>). <a href="http://www.compdoc.ru/internet/">На выбор</a>.</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2016-06-09T18:52:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105048#p105048</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105046#p105046" />
			<content type="html"><![CDATA[<p><strong>Flasher</strong><br />Хочу найти какой-нибудь понятный учебник по WSH, где бы мне рассказали разницу между VBS и JS на простых примерах, в таком духе. Так как я в программировании ноль мне нужен какой то указатель чтобы выбрать вектор от простого к сложному.<br />Как пример могу привести&nbsp; <a href="https://autohotkey.com/docs/AutoHotkey.htm">AHK</a> в котором материал доступно дается.<br />Что-то такое подскажите <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />. <br />	А насчет вашего кода мы поняли друг друга правильно? - я хочу чтобы скрипт искал документ в тексте которого (не в имени файла) встречается ключевое слово.</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-06-09T18:16:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105046#p105046</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105045#p105045" />
			<content type="html"><![CDATA[<p><strong>sabir.yanin2014</strong><br />Попробуте поискать в папке с кучей doc-файлов и задайте несколько популярных слов. Будет результат?<br />10-ки у меня нет. Не знаю, как там.<br />Ссылка - как ссылка. Ищите проблему на стороне антивируса. В моём браузере (даже при включённом JavaScript) никакой ругани нет. И всё же - зачем английский-то?</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2016-06-09T17:32:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105045#p105045</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105042#p105042" />
			<content type="html"><![CDATA[<p><strong>Flasher</strong><br />В поле выбора писал как вы сказали- не ищет. У меня Windows 10&nbsp; может поэтому не работает? А ссылку вы мне дали -антивирус ругается.</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-06-09T16:52:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105042#p105042</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105037#p105037" />
			<content type="html"><![CDATA[<p><strong>sabir.yanin2014</strong><br />Проверял. Это скорее даже маски имён. Там же пример масок указан. Если нужно одно расширение, то *.doc вводим.</p><p>Дать ссылку <a href="http://www.visualbasicscript.com/">несложно</a> (из наших там <strong>omegastripes</strong>). Только зачем? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2016-06-09T16:19:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105037#p105037</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105030#p105030" />
			<content type="html"><![CDATA[<p><strong>Flasher</strong>, вы сами проверяли код? У меня почему то не работает. Как правильно вводить маску расширения (я вводил &quot;doc&quot;)? Предусмотрена ли рекурсия в подпапки (у меня в коде есть)? Создавал в папке документ Word, в нем писал кодовое слово,&nbsp; запускал ваш скрипт -указывал эту папку. Результат &quot;Соответствующие файлы не найдены&quot; и всегда создается пустой документ на рабочем столе с названием кодового слова. Помогите пожалуйста довести до ума ваше творение. Еще просьба, не дадите ссылку на англоязычный форум по VBS, очень буду признателен <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-06-09T15:04:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105030#p105030</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104988#p104988" />
			<content type="html"><![CDATA[<p><strong>sabir.yanin2014</strong><br /></p><div class="codebox"><pre><code>Set ShAp = CreateObject(&quot;Shell.Application&quot;)
Set FSO  = CreateObject(&quot;Scripting.FileSystemObject&quot;)
IBox FiMask, &quot;маски расширений файлов&quot;, &quot;&#039;;&#039;&quot;, &quot;расширений&quot;, &quot;*.doc;*.docx;*.rtf&quot;
Set SFolder = ShAp.BrowseForFolder(0, vbCr &amp; vbCr &amp; &quot;Выберите папку для поиска:&quot;, 17, ShAp.NameSpace(&amp;H11))
If VarType(SFolder) = 9 Then WScript.Quit
IBox wd, &quot;ключевые слова&quot;, &quot;запятую&quot;, &quot;ключей&quot;, &quot;желтый,января,Иванов,563&quot;
Set oWord = CreateObject(&quot;Word.Application&quot;) : oWord.Visible = False
Name = &quot;Поиск &quot; &amp; Split(wd,&quot;,&quot;)(0) &amp; &quot;.txt&quot;
Path = ShAp.NameSpace(&amp;H0).Self.Path &amp; &quot;\&quot; &amp; Name
Set LogFile = FSO.OpenTextFile(Path, 8, True)
FFolder SFolder, Check : Title = &quot; Поиск файлов по ключевым словам&quot; : LogFile.Close
If Check Then
  If MsgBox(&quot;Поиск завершен!&quot; &amp; vbCr &amp; vbCr &amp; &quot;Данные сохранены на Рабочем столе&quot; &amp; vbCr &amp;_
  &quot;в файле &quot; &amp; Name &amp; vbCr &amp; vbCr &amp; &quot;Желаете открыть?&quot;, 4132, Title) = 6 Then ShAp.Open Path
Else MsgBox &quot;Соответствующие Файлы не найдены!&quot;, 4144, Title End If : oWord.Quit

Sub IBox(Var, Text1, Text2, Title, Val)
  Var = Trim(InputBox(String(5, vbCr) &amp; &quot;Введите &quot; &amp; Text1 &amp; &quot; через &quot; &amp; Text2 &amp; &quot;:&quot;, &quot; Ввод &quot; &amp; Title, Val))
  If Var = &quot;&quot; Then WScript.Quit
End Sub

Sub FFolder(Folder, Ch)
  Set Items = ShAp.NameSpace(Folder).Items
  Items.Filter 8256, FiMask
  For Each I In Items
    If Left(I.Name, 2) &lt;&gt; &quot;~$&quot; Then
      Set Doc = oWord.Documents.Open(I.Path, False, False)
      Set Sel = oWord.Selection
      For Each Word In Split(wd, &quot;,&quot;)
        Sel.Find.Text = Word : Sel.Find.Forward = True
        Sel.Find.MatchWholeWord = False : If Sel.Find.Execute Then _
        LogFile.WriteLine Word &amp; &quot; в &quot; &amp; I.Path : Ch = 1
      Next : Doc.Close
    End If
  Next : Items.Filter 8224, &quot;*&quot;
  For Each Fd in Items
    If FSO.FolderExists(Fd.Path) Then FFolder Fd.Path, Ch
  Next
End Sub</code></pre></div><p>Правда не уверен, что учёт для каждого документа будет многократный.</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2016-06-08T19:25:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104988#p104988</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104982#p104982" />
			<content type="html"><![CDATA[<p><strong>Flasher</strong><br />Может Return и надо было заменить на Exit (не судите строго) но эффект тот же скрипт завершает работу. По второму замечанию согласен, окно лишнее.</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-06-08T16:37:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104982#p104982</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104979#p104979" />
			<content type="html"><![CDATA[<p><strong>sabir.yanin2014</strong><br />Не понимаю, зачем тут return-ы, коли человек закрыл окно и не хочет искать? Я всегда выхожу из скрипта в таких условиях.<br />И &quot;Все готово для поиска`nВы хотите продолжить?&quot; - это лишнее окно в стиле &quot;Вы точно уверены?&quot; тут зачем?<br />Всё остальное понятно. Не сказать, что интересно, но помочь могу.</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2016-06-08T16:20:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104979#p104979</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Поиск документа Word по ключевым словам в документе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=104971#p104971" />
			<content type="html"><![CDATA[<p>На AHK я написал скрипт выполняющий поиск файлов Word в папках с подпапками по содержащимся в документе<br />ключевым словам. Все бы хорошо, но на работе компьютеры согласно корпоративной политики защищены от установки посторонних программ, и AHK я не могу установить. Что если написать тот же скрипт но на языке VBS или JS (какой лучше подойдет не знаю)? Вот исходный код:<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><p>Если кому то интересно, помогите преобразовать код в VBS( JS) <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-06-08T15:32:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=104971#p104971</id>
		</entry>
</feed>
