<?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="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16822&amp;type=atom" />
	<updated>2021-12-14T22:24:50Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=16822</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вывод информации из лог файла.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151184#p151184" />
			<content type="html"><![CDATA[<p>Спасибо, буду ковырять код.<br />Я только после вашего совета начал читать про JSON и сначала думал о более сложном способе реализации...</p>]]></content>
			<author>
				<name><![CDATA[danteduval]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41090</uri>
			</author>
			<updated>2021-12-14T22:24:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151184#p151184</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вывод информации из лог файла.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151176#p151176" />
			<content type="html"><![CDATA[<p>Как я понял, нужно самое последнее вхождение такой строки. Тогда так:<br /></p><div class="codebox"><pre><code>FileRead, text, D:\Downloads\Player.log
if ErrorLevel {
   MsgBox, Failed to read the file
   ExitApp
}
m := &quot;&quot;
needle := &quot;Keepalive request https://login.playcaliber.com/ka/v1/keepalive response changed: &quot;
while RegExMatch(text, &quot;O)\Q&quot; . needle . &quot;\E\K\V+&quot;, m, m ? m.Pos + m.Len : 1)
   ( InStr(m[0], &quot;user_id&quot;) &amp;&amp; json := m[0] )

try AhkObj := JsonToAHK(json)
catch {
   MsgBox, Invalid JSON string
   ExitApp
}

for k, v in AhkObj.match.players
   MsgBox, % &quot;user_id: &quot;  . v.user_id . &quot;`n&quot;
           . &quot;nickname: &quot; . v.nickname

JsonToAHK(json, rec := false) {
   static doc := ComObjCreate(&quot;htmlfile&quot;)
        , __ := doc.write(&quot;&lt;meta http-equiv=&quot;&quot;X-UA-Compatible&quot;&quot; content=&quot;&quot;IE=9&quot;&quot;&gt;&quot;)
        , JS := doc.parentWindow
   if !rec
      obj := %A_ThisFunc%(JS.JSON.parse(json), true)
   else if !IsObject(json)
      obj := json
   else if JS.Object.prototype.toString.call(json) == &quot;[object Array]&quot; {
      obj := []
      Loop % json.length
         obj.Push( %A_ThisFunc%(json[A_Index - 1], true) )
   }
   else {
      obj := {}
      keys := JS.Object.keys(json)
      Loop % keys.length {
         k := keys[A_Index - 1]
         obj[k] := %A_ThisFunc%(json[k], true)
      }
   }
   Return obj
}</code></pre></div><p>Но в первом посте вы писали<br /></p><div class="quotebox"><cite>danteduval пишет:</cite><blockquote><p>мы должны получить информацию после слов &quot;nick_name&quot;:    , &quot;level&quot;: , &quot;rating&quot;:</p></blockquote></div><p>В файле ключей <em>nick_name</em> нет.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-14T14:13:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151176#p151176</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вывод информации из лог файла.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151175#p151175" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br /><a href="https://disk.yandex.ru/d/Hob6TFPeDXfS_Q">https://disk.yandex.ru/d/Hob6TFPeDXfS_Q</a><br />Получается в строке, которая начинается с keepalive, содержит https://login.playcaliber.com/ka/v1/keepalive и имеет более 1000 символов(может есть способ лучше найти необходимую строку, но я его не знаю), в ветке [match][players] нужны значения ключей {player[&#039;user_id&#039;]} и {player[&#039;nickname&#039;]}.</p>]]></content>
			<author>
				<name><![CDATA[danteduval]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41090</uri>
			</author>
			<updated>2021-12-14T09:38:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151175#p151175</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вывод информации из лог файла.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151171#p151171" />
			<content type="html"><![CDATA[<p>Для этого лучше загрузить файл целиком.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-14T01:00:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151171#p151171</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вывод информации из лог файла.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151170#p151170" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Спасибо за попытку направить, но к сожалению, мой уровень(monkey see monkey do) не позволяет мне решить эту проблему, если был бы какой-нибудь образец, хотя бы для пары ключей - был бы очень признателен.</p>]]></content>
			<author>
				<name><![CDATA[danteduval]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41090</uri>
			</author>
			<updated>2021-12-13T22:51:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151170#p151170</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вывод информации из лог файла.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151142#p151142" />
			<content type="html"><![CDATA[<p>Насколько я вижу, лог файл в формате JSON. Такой формат можно перевести в AHK-объект и получать ключи/значения, используя цикл <em>for</em>.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-12T14:31:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151142#p151142</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Вывод информации из лог файла.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151140#p151140" />
			<content type="html"><![CDATA[<p>Добрый день, помогите пожалуйста с решением следующей задачи:</p><p>Имеется сессионная игра, во время загрузки матча игра в лог файл пишет информацию(рейтинг, лвл и тд), тем не менее на экране загрузки данную информацию посмотреть нельзя.</p><p>Задача - вывести информацию из лог файла.<br />С считыванием информации из лог файла помогла вот эта тема <a href="http://forum.script-coding.com/viewtopic.php?pid=95324#p95324">http://forum.script-coding.com/viewtopi … 324#p95324</a></p><p>А вот основной проблема заключается в том, как вычленить из полученного текста нужную информацию.<br />Здесь приведено начало лога и для более краткой версии скопировал лог только на одного игрока далее лог продолжается с той же самой инфой только по другом игроку<br /><a href="https://pastebin.com/Ha5e6vnA">https://pastebin.com/Ha5e6vnA</a></p><p>Далее, насколько я понимаю, нам необходимо сделать поиск с конца текста до определенной контрольной точки, допустим это будет слово players и уже в полученном тексте, т.е. который от слова players до конца текста, мы должны получить информацию после слов &quot;nick_name&quot;:&nbsp; &nbsp; , &quot;level&quot;: , &quot;rating&quot;: <br />И от в этом основной затык, подскажите как сделать поиск с конца до определенного момента и как в найденном тексте вычленить нужную мне информацию.</p>]]></content>
			<author>
				<name><![CDATA[danteduval]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41090</uri>
			</author>
			<updated>2021-12-12T09:53:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151140#p151140</id>
		</entry>
</feed>
