<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=14470</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14470&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Запись даты на новой строке при нажатии на клавишу.».]]></description>
		<lastBuildDate>Sat, 05 Jan 2019 21:30:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=130876#p130876</link>
			<description><![CDATA[<p><strong>teadrinker</strong> спасибо. Заработало.</p>]]></description>
			<author><![CDATA[null@example.com (radioamator)]]></author>
			<pubDate>Sat, 05 Jan 2019 21:30:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=130876#p130876</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=130863#p130863</link>
			<description><![CDATA[<p>Так, наверно:<br /></p><div class="codebox"><pre><code>storage := A_ScriptDir . &quot;\16.txt&quot;
template := &quot;Нажато клавиш: &quot;

WatchPress := Func(&quot;WatchPress&quot;).Bind(storage, template)
Loop 248
   Hotkey, % &quot;~&quot; . Format(&quot;vk{:X}&quot;, A_Index + 7), % WatchPress, On
Return

WatchPress(filePath, template)  {
   Critical
   date := A_DD . &quot;.&quot; . A_MM . &quot;.&quot; . A_YEAR
   oFile := FileOpen(filePath, &quot;rw&quot;, &quot;cp0&quot;)
   content := oFile.Read()
   RegExMatch(content, &quot;s)(.*\R)?\K.*?(?&lt;PressCount&gt;\d+)\s(?&lt;Date&gt;\d\d\.\d\d\.\d{4})$&quot;, lastStr)
   dateFit := date = lastStrDate
   newLastStr := ( (lastStr &amp;&amp; !dateFit) ? &quot;`r`n&quot; : &quot;&quot; ) . template . (dateFit ? ++lastStrPressCount : &quot;1&quot; ) . &quot; &quot; . date
   if dateFit
      oFile.Pos -= StrLen(lastStr), oFile.Length := oFile.Pos
   oFile.Write(newLastStr)
   oFile.Close()
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 05 Jan 2019 15:02:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=130863#p130863</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=130860#p130860</link>
			<description><![CDATA[<p><strong>KusochekDobra</strong>, не работает.<br />При смене даты (наступление нового дня) - скрипт просто переписывает старую строку.<br />Таким образом - в файле все время одна-единственная строка, которую скрипт при смене даты - просто переписывает заново.</p>]]></description>
			<author><![CDATA[null@example.com (radioamator)]]></author>
			<pubDate>Sat, 05 Jan 2019 12:23:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=130860#p130860</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=130850#p130850</link>
			<description><![CDATA[<div class="codebox"><pre><code>
#SingleInstance, Force
#NoEnv
SetWorkingDir, A_ScriptDir

Global	counter		:= 1
		, storage	:= &quot;16.txt&quot;
		, template	:= &quot;Нажато клавиш {} {}.{}.{}&quot;
		, storageContent := &quot;&quot;

if !(FileExist(storage)) {
	FileAppend,% Format(template, 0, A_DD, A_MM, A_YYYY),% storage, UTF-8
} else if (IsMatched()) {
	oFile := FileOpen(storage, &quot;r&quot;, &quot;UTF-8&quot;)
	lines := StrSplit(oFile.Read(), &quot;`r`n&quot;)
	oFile.Close()
	Loop,% n := lines.Length() - 1 
		storageContent .= lines[ A_Index ] (A_Index != n ? &quot;`r`n&quot; : &quot;&quot;)
	RegExMatch(lines[lines.Length()], &quot;.* ([\d]+) [\d\.]+&quot;, m)
	counter := m1 + 1
}

i := 8
Loop 247
   Hotkey, % &quot;~vk&quot; . Format(&quot;{:X}&quot;, i++), WatchPress, On
Return
WatchPress() {
   oFile := FileOpen(storage, &quot;w&quot;, &quot;UTF-8&quot;)
   str := Format(template, IsMatched() ? counter++ : counter++, A_DD, A_MM, A_YYYY)
   oFile.Write(Format(&quot;{}{}{}&quot;,storageContent, storageContent ? &quot;`r`n&quot; : &quot;&quot;, str))
   oFile.Close()
}
IsMatched() {
	FileGetTime, storageTime,% storage
	FormatTime, storageYDay,% storageTime, YDay
	if (storageYDay == A_YDay)
		Return true
		
	oFile := FileOpen(storage, &quot;r&quot;, &quot;UTF-8&quot;)
	storageContent := oFile.Read()
	oFile.Close()
	counter := 1
	Return false
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Sat, 05 Jan 2019 09:34:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=130850#p130850</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=130843#p130843</link>
			<description><![CDATA[<p><strong>KusochekDobra</strong>,все нормально, только скрипт - на смену даты неправильно реагирует.<br />Он полностью перезаписывает содержимое файла txt - под новую дату.</p><p>Как этот код научить - при наступлении новой даты (нового дня) - тут же создавать новую аналогичную строку в txt ?<br />Чтобы при смене даты получился примерно такой текст:<br />Нажато клавиш 816 04.01.2019<br />Нажато клавиш 2 05.01.2019</p>]]></description>
			<author><![CDATA[null@example.com (radioamator)]]></author>
			<pubDate>Sat, 05 Jan 2019 01:17:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=130843#p130843</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=130838#p130838</link>
			<description><![CDATA[<p>Годится?<br /></p><div class="codebox"><pre><code>
#SingleInstance, Force
#NoEnv
SetWorkingDir, A_ScriptDir

Global	counter		:= 1
		, storage	:= &quot;16.txt&quot;
		, template	:= &quot;Какой-то текст {} {}.{}.{}&quot;
		, storageContent

	
if !(FileExist(storage)) {
	FileAppend,% Format(template, 0, A_DD, A_MM, A_YYYY),% storage, UTF-8
	storageContent := &quot;&quot;
} else if (IsMatched()) {
	oFile := FileOpen(storage, &quot;r&quot;, &quot;UTF-8&quot;)
	oFile.Seek(-20)
	content := oFile.Read()
	oFile.Close()
	RegExMatch(content, &quot;.* ([\d]+) [\d\.]+&quot;, m)
	counter := m1 + 1
}

i := 8
Loop 247
   Hotkey, % &quot;~vk&quot; . Format(&quot;{:X}&quot;, i++), WatchPress, On
Return
WatchPress() {
   oFile := FileOpen(storage, &quot;w&quot;, &quot;UTF-8&quot;)
   str := Format(template, IsMatched() ? counter++ : counter++, A_DD, A_MM, A_YYYY)
   oFile.Write(Format(&quot;{}{}{}&quot;,storageContent, storageContent ? &quot;`n`n&quot; : &quot;&quot;, str))
   oFile.Close()
}
IsMatched() {
	FileGetTime, storageTime,% storage
	FormatTime, storageYDay,% storageTime, YDay
	FormatTime, storageYear,% storageTime, yyyy
	if (storageYear == A_YYYY &amp;&amp; storageYDay == A_YDay)
		Return true
		
	oFile := FileOpen(storage, &quot;r&quot;, &quot;UTF-8&quot;)
	storageContent := oFile.Read()
	oFile.Close()
	counter := 1
	Return false
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Fri, 04 Jan 2019 15:17:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=130838#p130838</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=130829#p130829</link>
			<description><![CDATA[<p>Здравствуйте.<br />Помогите решить вопрос.<br />Как скриптом при нажатии на любую клавишу клавиатуры - добавить с перезаписью единицу в файл &quot;16.txt&quot; и проставить текущую дату ?</p><p>Запись в txt будет выглядеть так:<br />&quot;Какой-то текст 1 22.01.2019&quot;</p><p>Если нажать на любую клавишу еще раз, то этот текст заменится на следующий:<br />&quot;Какой-то текст 2 22.01.2019&quot;</p><p>Но если нажать на клавишу - на другой день, то скрипт создаст новою аналогичную запись - на новой строке - поскольку дата изменится.</p>]]></description>
			<author><![CDATA[null@example.com (radioamator)]]></author>
			<pubDate>Fri, 04 Jan 2019 03:41:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=130829#p130829</guid>
		</item>
	</channel>
</rss>
