<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Множественная запись в txt файл несколькими разными .ahk]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=16514</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16514&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Множественная запись в txt файл несколькими разными .ahk».]]></description>
		<lastBuildDate>Mon, 02 Aug 2021 15:04:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Множественная запись в txt файл несколькими разными .ahk]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149127#p149127</link>
			<description><![CDATA[<p><strong>teadrinker</strong></p><p>Спасибо! Попробую!</p>]]></description>
			<author><![CDATA[null@example.com (unicorn79)]]></author>
			<pubDate>Mon, 02 Aug 2021 15:04:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149127#p149127</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Множественная запись в txt файл несколькими разными .ahk]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149126#p149126</link>
			<description><![CDATA[<p>Никогда не пробовал писать в один файл одновременно из разных скриптов, и не знаю о библиотеке TF, но если нужно поставить запись в очередь, можно использовать, например, такой алгоритм. Писать в файл должен один скрипт, остальные должны посылать ему текст сообщением <a href="https://www.autohotkey.com/docs/commands/OnMessage.htm#SendString">WM_COPYDATA</a> и проверять ErrorLevel, если true — значит успешно, если false — послать ещё раз.</p><p>А вообще наверно достаточно просто попытаться открыть файл на запись:<br /></p><div class="codebox"><pre><code>File := FileOpen(filePath, &quot;w&quot;)
MsgBox, % IsObject(File)</code></pre></div><p>Если выдаст false, значит файл занят.<br />Также скорее всего можно попытаться писать текст в файл командой FileAppend и проверить ErrorLevel, либо использовать try-catch.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 02 Aug 2021 14:40:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149126#p149126</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Множественная запись в txt файл несколькими разными .ahk]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149125#p149125</link>
			<description><![CDATA[<p>Добрый день, уважаемые!<br />Подскажите пожалуйста, хочу организовать множественные операции чтения-записи в txt файл несколькими параллельно работающими.ahk-файлами.</p><p>Использую известную библиотеку TF <a href="https://github.com/hi5/TF">https://github.com/hi5/TF</a> , но метод чтения-записи, уверен не важен, важно мне понять суть..<br />С чтением более-менее всё понятно, а вот с записью в файл вопрос... <br />Если я буду средствами ahk из разных скриптов (!) писать в один и тот же файл - не получится ли так, при больших объёмах операций, что один ahk откроет файл для записи, запишет туда результат, сохранит файл, а в это же время другой скрипт сделает свою запись в этот же файл и так далее... Не будет ли здесь конфликта записи, запрета одновременного доступа к файлу и тд.? Как наиболее правильно это реализовать при работе с одним txt? Предполагаю, что файл как-то нужно блокировать в пределах одного скрипта, чтоб другие скрипты не могли в этот файл в этот момент писать... При этом чтоб каждый скрипт перед началом операций записи предварительно проверял, &quot;свободен&quot; ли сейчас этот файл и не занят другими...</p><p>Оговорюсь, что интересует именно корректный метод работы с .txt, (не с sql, xlsx и .т.д). <br />Спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (unicorn79)]]></author>
			<pubDate>Mon, 02 Aug 2021 09:12:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149125#p149125</guid>
		</item>
	</channel>
</rss>
