<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK v2: список сайтов из txt в json для Amnezia]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=18549</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=18549&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK v2: список сайтов из txt в json для Amnezia».]]></description>
		<lastBuildDate>Fri, 13 Feb 2026 15:03:25 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163080#p163080</link>
			<description><![CDATA[<div class="quotebox"><cite>haridev пишет:</cite><blockquote><p>Узнал про \V+, про &quot;вертикальный пробел&quot;</p></blockquote></div><p>Если что, \V — это как раз <em>всё, кроме</em> вертикального пробела, вертикальный пробел это \v.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 13 Feb 2026 15:03:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163080#p163080</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163077#p163077</link>
			<description><![CDATA[<p>Отлично! Узнал про \V+, про &quot;вертикальный пробел&quot;.<br />Добавил кавычки для имени сайта:<br /></p><div class="codebox"><pre><code>if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
try FileDelete sitesJson
i := &#039;`s`s&#039;
s := Trim(FileRead(sites, &#039;`n&#039;), &#039;`n`t`s&#039;)
s := RegExReplace(s, &#039;\V+&#039;, i . &#039;{`n&#039; . i . i . &#039;&quot;hostname&quot;: &quot;$0&quot;`n&#039; . i . &#039;},&#039;)
s := &#039;[`n&#039; . RTrim(s, &#039;,&#039;) . &#039;`n]&#039;
FileAppend s, sitesJson</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (haridev)]]></author>
			<pubDate>Fri, 13 Feb 2026 08:26:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163077#p163077</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163074#p163074</link>
			<description><![CDATA[<p>Проще так:<br /></p><div class="codebox"><pre><code>if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
try FileDelete sitesJson
i := &#039;`s`s&#039;
s := Trim(FileRead(sites, &#039;`n&#039;), &#039;`n`t`s&#039;)
s := RegExReplace(s, &#039;\V+&#039;, i . &#039;{`n&#039; . i . i . &#039;&quot;hostname&quot;: $0`n&#039; . i . &#039;},&#039;)
s := &#039;[`n&#039; . RTrim(s, &#039;,&#039;) . &#039;`n]&#039;
FileAppend s, sitesJson</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 13 Feb 2026 00:20:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163074#p163074</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163072#p163072</link>
			<description><![CDATA[<p>Так, примерно?<br /></p><div class="codebox"><pre><code>; список сайтов из txt в json для Amnezia
if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
try	FileDelete sitesJson
indent := &#039;`s`s&#039;, indent2 := indent . indent
s := RTrim(FileRead(sites, &#039;`n&#039;), &#039;`n`s`t&#039;)
s := RegExReplace(s, &#039;`n&#039;, &#039;&quot;`n&#039; . indent . &#039;},`n&#039; . indent . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039;)
s := (&#039;[`n&#039; . indent . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039;) . s . (&#039;&quot;`n&#039; . indent . &#039;}`n]&#039;)
FileAppend s, sitesJson
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (haridev)]]></author>
			<pubDate>Thu, 12 Feb 2026 09:58:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163072#p163072</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163071#p163071</link>
			<description><![CDATA[<p>Не следует много действий упаковывать в одну строку. Такое трудно читать и невозможно отлаживать.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 12 Feb 2026 09:08:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163071#p163071</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163070#p163070</link>
			<description><![CDATA[<p>Так, наверно<br /></p><div class="codebox"><pre><code>; список сайтов из txt в json для Amnezia
if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
try	FileDelete sitesJson
indent := &#039;`s`s&#039;, indent2 := indent . indent
FileAppend &#039;[`n&#039; . indent . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039; . RegExReplace(RTrim(FileRead(sites, &#039;`n&#039;), &#039;`n`s`t&#039;), &#039;`n&#039;, &#039;&quot;`n&#039; . indent . &#039;},`n&#039; . indent . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039;) . &#039;&quot;`n&#039; . indent . &#039;}`n]&#039;, sitesJson
ExitApp</code></pre></div><p>или так<br /></p><div class="codebox"><pre><code>; список сайтов из txt в json для Amnezia
if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
try	FileDelete sitesJson
indent := &#039;`s`s&#039;, indent2 := indent . indent
FileAppend &#039;[`n&#039; . indent . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039;
. RegExReplace(RTrim(FileRead(sites, &#039;`n&#039;), &#039;`n`s`t&#039;)
	, &#039;`n&#039;, &#039;&quot;`n&#039; . indent . &#039;},`n&#039; . indent . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039;) . &#039;&quot;`n&#039; . indent . &#039;}`n]&#039;
, sitesJson
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (haridev)]]></author>
			<pubDate>Thu, 12 Feb 2026 07:25:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163070#p163070</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163069#p163069</link>
			<description><![CDATA[<p>Явных ошибок нет, но построчное чтение файла здесь не оптимально. Лучше считать весь текст сразу и сделать изменения через регулярку в один проход. Библиотека LightJson в данном случае не нужна.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 11 Feb 2026 22:39:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163069#p163069</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163068#p163068</link>
			<description><![CDATA[<p>Особо вопроса нет. Думал, может кто ошибки укажет или предложит лучший вариант.<br />Вот ещё вариант<br /></p><div class="codebox"><pre><code>; список сайтов из txt в json для Amnezia
#Include &lt;LightJson&gt;
if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
json := &#039;&#039;
Loop Read sites
	json .= (A_Index = 1 ? &#039;[&#039; : &#039;,&#039;) . &#039;{&quot;hostname&quot;:&quot;&#039; . A_LoopReadLine . &#039;&quot;}&#039;
json .= &#039;]&#039;
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
try	FileDelete sitesJson
FileAppend LightJson.Beautify(json, &#039;    &#039;), sitesJson
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (haridev)]]></author>
			<pubDate>Wed, 11 Feb 2026 22:16:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163068#p163068</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163067#p163067</link>
			<description><![CDATA[<p>А в чём вопрос-то?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 11 Feb 2026 21:31:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163067#p163067</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163066#p163066</link>
			<description><![CDATA[<p>ещё поправил<br /></p><div class="codebox"><pre><code>; список сайтов из txt в json для Amnezia
if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
indent1 := &#039;`s`s&#039;, indent2 := indent1 . indent1
try	FileDelete sitesJson
Loop Read sites, sitesJson
	FileAppend (A_Index = 1 ? &#039;[`n&#039; : &#039;,`n&#039;) . indent1 . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039; . A_LoopReadLine . &#039;&quot;`n&#039; . indent1 . &#039;}&#039;
FileAppend &#039;`n]&#039;, sitesJson
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (haridev)]]></author>
			<pubDate>Wed, 11 Feb 2026 20:43:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163066#p163066</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163065#p163065</link>
			<description><![CDATA[<p>Подправил<br /></p><div class="codebox"><pre><code>; список сайтов из txt в json для Amnezia
if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := SubStr(sites, 1, -3) . &#039;json&#039;
indent1 := A_Space . A_Space
indent2 := indent1 . indent1
if FileExist(sitesJson)
	FileDelete sitesJson
Loop Read sites, sitesJson
	FileAppend (A_Index = 1 ? &#039;[`n&#039; : &#039;,`n&#039;) . indent1 . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039; . A_LoopReadLine . &#039;&quot;`n&#039; . indent1 . &#039;}&#039;
FileAppend &#039;`n]&#039;, sitesJson
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (haridev)]]></author>
			<pubDate>Wed, 11 Feb 2026 17:21:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163065#p163065</guid>
		</item>
		<item>
			<title><![CDATA[AHK v2: список сайтов из txt в json для Amnezia]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163064#p163064</link>
			<description><![CDATA[<div class="codebox"><pre><code>; список сайтов из txt в json для Amnezia
if !sites := FileSelect(1,, &#039;Список сайтов&#039;, &#039;Documents (*.txt)&#039;)
	ExitApp
sitesJson := StrReplace(sites, &#039;.txt&#039;, &#039;.json&#039;,, &amp;OutputVarCount)
if OutputVarCount != 1 {
	MsgBox &#039;Недопустимое имя входного файла&#039;
	ExitApp
}
indent1 := A_Space . A_Space
indent2 := indent1 . indent1
FileDelete sitesJson
Loop Read sites, sitesJson
	FileAppend (A_Index = 1 ? &#039;[`n&#039; : &#039;,`n&#039;) . indent1 . &#039;{`n&#039; . indent2 . &#039;&quot;hostname&quot;: &quot;&#039; . A_LoopReadLine . &#039;&quot;`n&#039; . indent1 . &#039;}&#039;
FileAppend &#039;`n]&#039;, sitesJson
ExitApp</code></pre></div><p>Для замечаний.</p>]]></description>
			<author><![CDATA[null@example.com (haridev)]]></author>
			<pubDate>Wed, 11 Feb 2026 15:31:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163064#p163064</guid>
		</item>
	</channel>
</rss>
