<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Поиск файлов по списку из текстового файла]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16167&amp;type=atom" />
	<updated>2021-03-12T15:08:23Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16167</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146745#p146745" />
			<content type="html"><![CDATA[<p>Ещё короче:<br /></p><div class="codebox"><pre><code>Files := &quot;&quot;
FileRead, ExludeList, ExludeList.txt

Loop, Files, %SourceDir%\*, R
   if !RegExMatch(ExludeList, &quot;m`a)^\Q&quot; . A_LoopFileName . &quot;\E$&quot;)
      Files .= A_LoopFileName . &quot;`n&quot;
   
MsgBox, % Files</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-03-12T15:08:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146745#p146745</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146744#p146744" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> ... кстати, сразу видно Мастера - у Вас код короче получился <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Спасибо!</p>]]></content>
			<author>
				<name><![CDATA[BlackCat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41382</uri>
			</author>
			<updated>2021-03-12T13:52:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146744#p146744</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146743#p146743" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> ОК, понял.<br />Благодарю за работу и помощь!<br />Буду копать далее ...</p>]]></content>
			<author>
				<name><![CDATA[BlackCat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41382</uri>
			</author>
			<updated>2021-03-12T13:45:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146743#p146743</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146742#p146742" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>BlackCat пишет:</cite><blockquote><p>Ничего универсального для чтения всех кодировок придумать невозможно?</p></blockquote></div><p>Нет, кодировка текстового файла определяется только по BOM, если её нет, то считается, что кодировка ANSI.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-03-12T13:28:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146742#p146742</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146741#p146741" />
			<content type="html"><![CDATA[<p>Для данного случая подойдёт и cp 1251, точнее это скорее всего ANSI, но иногда требуется сохранить Unicode-символы, которых нет в ANSI, в таких случаях и нужна кодировка UTF-8. Например, такой скрипт сохранить в ANSI не получится:<br /></p><div class="codebox"><pre><code>MsgBox, ø ¼ š</code></pre></div><p>Поэтому просто поставьте по умолчанию кодировку UTF-8 с BOM.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-03-12T13:23:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146741#p146741</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146740#p146740" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, ну да, так и есть!<br />Для написания скриптов AHK использую Notepad++ со всеми интересными мне плагинами и подсветкой синтаксиса AHK<br />По-умолчанию он создает текстовые файлы в кодировке UTF-8 БЕЗ BOM<br />Тогда какой смысл использовать кодировку UTF-8 с BOM, если можно просто зафигачить весь список в кодировку 1251 - файл, созданный средствами винды???<br />... конечно, можно в настойках Notepad++ установить нужную кодировку для новых файлов, но .... лень, да и не каждый захочет или поймет, как это сделать ... в любом случае должна присутствовать &quot;страховка от дурака&quot;.<br />Ничего универсального для чтения всех кодировок придумать невозможно? - В этом вопросе я пока zero.</p>]]></content>
			<author>
				<name><![CDATA[BlackCat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41382</uri>
			</author>
			<updated>2021-03-12T12:41:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146740#p146740</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146739#p146739" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>BlackCat пишет:</cite><blockquote><p>русские названия не воспринимает</p></blockquote></div><p>Если не воспринимает, значит кодировка списка была UTF-8-RAW, то-есть без <a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2">BOM</a>. Измените на UTF-8 с BOM или добавьте явно кодировку в скрипт первой строчкой:<br /></p><div class="codebox"><pre><code>FileEncoding, UTF-8</code></pre></div><p>и всё будет ок.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-03-12T10:14:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146739#p146739</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146738#p146738" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, хорошая попытка, но такая же фигня - русские названия не воспринимает.<br />Т.е., если в списке есть файл, напр. &quot;Новый текстовый документ.txt&quot; и он есть в директории поиска, то он все-равно отображается в msgbox.<br />Суть проблемы понял - изменил кодировку файла списка с UTF-8 на виндовую 1251 и все заработало.<br />Но все-равно спасибо за помощь!</p>]]></content>
			<author>
				<name><![CDATA[BlackCat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41382</uri>
			</author>
			<updated>2021-03-12T07:53:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146738#p146738</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146736#p146736" />
			<content type="html"><![CDATA[<p>Думаю, так должно сработать:<br /></p><div class="codebox"><pre><code>Exclude := {}, Files := &quot;&quot;
FileRead, ExludeList, ExludeList.txt

Loop, parse, ExludeList, `n, `r
   Exclude[A_LoopField] := &quot;&quot;

Loop, Files, %SourceDir%\*, R
   if !Exclude.HasKey(A_LoopFileName)
      Files .= A_LoopFileName . &quot;`n&quot;
   
MsgBox, % Files</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-03-11T21:54:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146736#p146736</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146733#p146733" />
			<content type="html"><![CDATA[<p>В общем, на исключение файлов из поиска, имена которых находятся в текстовом файле, работает этот код:<br /></p><div class="codebox"><pre><code>ExludeList := &quot;ExludeList.txt&quot;

Exlude := []
Loop read, % ExludeList
	{
	Exlude.push(A_LoopReadLine)
	}
	
Loop % SourceDir &quot;\*&quot;, 0, 1
	{
	Found := 0
	For Each, Filename in Exlude
	If (Filename = A_LoopFileName){
		Found := 1
		}
	If (!Found){
		Files .= A_LoopFileName &quot;`n&quot;
		}
	}
	
MsgBox % Files
</code></pre></div><p>Может кому пригодится.<br />Единственный недостаток - почему-то не понимает кириллицу, хотя текстовой файл списка в UTF-8</p>]]></content>
			<author>
				<name><![CDATA[BlackCat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41382</uri>
			</author>
			<updated>2021-03-11T18:34:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146733#p146733</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146713#p146713" />
			<content type="html"><![CDATA[<p><strong>Alectric</strong> благодарю за ответ, но результат тот же, что и с моим кодом.</p>]]></content>
			<author>
				<name><![CDATA[BlackCat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41382</uri>
			</author>
			<updated>2021-03-10T17:24:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146713#p146713</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146710#p146710" />
			<content type="html"><![CDATA[<p>Цикловые переменные (A_Loop* или A_Index) действительны в пределах только одного цикла (то есть в пределах фигурных скобок). Чтобы использовать их во &quot;вложенном&quot; цикле - нужно присвоить их содержимой другой переменной и использовать ее.<br /></p><div class="codebox"><pre><code>List := &quot;List.txt&quot;

Loop read, % List
  {
  tmpvar:=A_LoopReadLine
  Loop % SourceDir &quot;\*&quot;, 0, 1
    {
    If (A_LoopFileName != tmpvar) {
      Files .= A_LoopFileName &quot;`n&quot;
      }
    }
  }
  
msgbox % Files</code></pre></div><p>Код не проверял, просто для примера.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2021-03-10T17:11:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146710#p146710</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Поиск файлов по списку из текстового файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146706#p146706" />
			<content type="html"><![CDATA[<p>Добрый день всем!<br />Пытаюсь сделать скрипт, который будет искать файлы, имена которых находятся в текстовом файле.<br />Повод: это универсальный метод поиска нужных директорий и фалов, т.к. гораздо быстрее отредактировать текстовой файл, чем редактировать весь скрипт.<br />К тому же, он может быть скомпилирован в *.exe файл, который не поддается редактированию штатными средствами.<br />К примеру, файл списка &quot;List.txt&quot; содержит следующие имена файлов:<br /></p><div class="codebox"><pre><code>EULA.txt
ListDevices.txt
setup.cfg
setup.exe</code></pre></div><p>Такой код для поиска имеющихся в списке файлов работает:<br /></p><div class="codebox"><pre><code>List := &quot;List.txt&quot;

Loop read, % List
	{
	Loop % SourceDir &quot;\*&quot;, 0, 1
		{
		If (A_LoopFileName = A_LoopReadLine){
			Files .= A_LoopFileName &quot;`n&quot;
			}
		}
	}
	
msgbox % Files</code></pre></div><p>Следующая конструкция, которая по идее должна исключить эти файлы из поиска, не работает:<br /></p><div class="codebox"><pre><code>List := &quot;List.txt&quot;

Loop read, % List
	{
	Loop % SourceDir &quot;\*&quot;, 0, 1
		{
		If (A_LoopFileName != A_LoopReadLine) {
			Files .= A_LoopFileName &quot;`n&quot;
			}
		}
	}
	
msgbox % Files
</code></pre></div><p>Не подскажете, в чем причина и как правильно сделать срипт, который будет исключать из поиска файлы в списке?<br />Признателен за любую помощь!</p>]]></content>
			<author>
				<name><![CDATA[BlackCat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41382</uri>
			</author>
			<updated>2021-03-10T07:36:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146706#p146706</id>
		</entry>
</feed>
