<?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=14470&amp;type=atom" />
	<updated>2019-01-05T21:30:57Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=14470</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130876#p130876" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> спасибо. Заработало.</p>]]></content>
			<author>
				<name><![CDATA[radioamator]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39871</uri>
			</author>
			<updated>2019-01-05T21:30:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130876#p130876</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130863#p130863" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-01-05T15:02:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130863#p130863</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130860#p130860" />
			<content type="html"><![CDATA[<p><strong>KusochekDobra</strong>, не работает.<br />При смене даты (наступление нового дня) - скрипт просто переписывает старую строку.<br />Таким образом - в файле все время одна-единственная строка, которую скрипт при смене даты - просто переписывает заново.</p>]]></content>
			<author>
				<name><![CDATA[radioamator]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39871</uri>
			</author>
			<updated>2019-01-05T12:23:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130860#p130860</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130850#p130850" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[KusochekDobra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33846</uri>
			</author>
			<updated>2019-01-05T09:34:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130850#p130850</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130843#p130843" />
			<content type="html"><![CDATA[<p><strong>KusochekDobra</strong>,все нормально, только скрипт - на смену даты неправильно реагирует.<br />Он полностью перезаписывает содержимое файла txt - под новую дату.</p><p>Как этот код научить - при наступлении новой даты (нового дня) - тут же создавать новую аналогичную строку в txt ?<br />Чтобы при смене даты получился примерно такой текст:<br />Нажато клавиш 816 04.01.2019<br />Нажато клавиш 2 05.01.2019</p>]]></content>
			<author>
				<name><![CDATA[radioamator]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39871</uri>
			</author>
			<updated>2019-01-05T01:17:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130843#p130843</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130838#p130838" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[KusochekDobra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33846</uri>
			</author>
			<updated>2019-01-04T15:17:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130838#p130838</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Запись даты на новой строке при нажатии на клавишу.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130829#p130829" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[radioamator]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39871</uri>
			</author>
			<updated>2019-01-04T03:41:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130829#p130829</id>
		</entry>
</feed>
