<?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=8478&amp;type=atom" />
	<updated>2013-07-15T08:40:30Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8478</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: обработка протокола\лога]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73776#p73776" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>пните в сторону</p></blockquote></div><div class="codebox"><pre><code>
var =
(
событие_неважно      00:00:21
событие_важно_имя1      00:00:21
событие_неважно      00:00:21
метка_начало      01:00:21
событие_имя1      00:00:21
событие_имя2      00:00:21
событие_имя3      00:00:21
метка_конец      00:59:59
событие_неважно      00:00:21
событие_неважно      00:00:21
событие_важно_имя2      05:00:21
)

RegExMatch(var, &quot;метка_начало\s+(\d+:\d+:\d+)\R(.*?)метка_конец\s+(\d+:\d+:\d+)\R&quot;, Match)
Res := &quot;1. &quot; RegExReplace(Match2, &quot;\s+\d+:\d+:\d+\R&quot;, &quot; + &quot;), Res := RegExReplace(Res, &quot;\+ $&quot;, &quot;:&quot;)
Res .= &quot; время начала &quot; Match1 &quot; : время конца &quot; Match3
Res .= &quot; : длительность &quot; DifferenceTime(Match1, Match3) &quot;`n&quot;, Pos := 1 
While Pos 
    Pos := RegExMatch(var, &quot;m`a).*(событие_важно.*?)\s+(\d+:\d+:\d+)$&quot;, Match, Pos)
    , (Pos) ? (Res .= A_Index+1 &quot;. &quot; Match1 &quot; : &quot; Match2 &quot;`n&quot;, ++Pos) : (Res := Rtrim(Res, &quot;`n&quot;))  

MsgBox % Res


 ; === DifferenceTime ===


DifferenceTime(sT, eT)  {   
    sT := A_YYYY A_MM A_DD RegExReplace(sT, &quot;:&quot;) 
    Time := Time2 := A_YYYY A_MM A_DD RegExReplace(eT, &quot;:&quot;) 
    EnvSub, Time, sT, Second 
    If Time &gt;= 0
        Return Format(Time)
    Time2 += 1, days
    EnvSub, Time2, sT, Second
    Return Format(Time2)
}

Format(sec) {
    H := sec // 3600, H := StrLen(H) = 1 ? 0 H : H
    M := Mod(sec, 3600) // 60, M := StrLen(M) = 1 ? 0 M : M 
    S := Mod(sec, 60), S := StrLen(S) = 1 ? 0 S : S 
    Return H &quot;:&quot; M &quot;:&quot; S
}  
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-15T08:40:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73776#p73776</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: обработка протокола\лога]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73775#p73775" />
			<content type="html"><![CDATA[<p>сильно разжевывать необязательно, хотя бы пните в сторону правильного алгоритма)<br />все строки в логи такие:<br /></p><div class="codebox"><pre><code>
&lt;    01.07.2013 00:21:10    1.wav     00:00:21
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Zeirram]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30355</uri>
			</author>
			<updated>2013-07-15T08:10:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73775#p73775</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: обработка протокола\лога]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73774#p73774" />
			<content type="html"><![CDATA[<p>Чтобы что то с этим сделать, нужен точный синтаксис\пример лога.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-15T07:58:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73774#p73774</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: обработка протокола\лога]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73771#p73771" />
			<content type="html"><![CDATA[<p>привет)</p><p>опыта программирования немного, прошу помощи с сабжем.<br />есть протокол вида:</p><p>событие_неважно время<br />событие_важно_имя1 время<br />событие_неважно время<br />метка_начало время<br />событие_имя1 время<br />событие_имя2 время<br />событие_имя3 время<br />метка_конец время<br />событие_неважно время<br />событие_неважно время<br />событие_важно_имя2 время</p><p>необходим отчет вида:<br />1. событие_имя1 + событие_имя2 + событие_имя3 : время начала (по метка_начало): время конца (по метка_конец): длительность<br />2. событие_важно_имя1 : время<br />3. событие_важно_имя2 : время</p><p>в лоб сделанный мной сложный цикл чересчур громоздкий и малочитаемый, и вообще, я путаюсь в скобках)<br />как можно проще?</p>]]></content>
			<author>
				<name><![CDATA[Zeirram]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30355</uri>
			</author>
			<updated>2013-07-15T07:16:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73771#p73771</id>
		</entry>
</feed>
