<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Как определить порядковый номер строки запущенного скрипта]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9432&amp;type=atom" />
	<updated>2014-04-09T22:59:47Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9432</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Как определить порядковый номер строки запущенного скрипта]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=81613#p81613" />
			<content type="html"><![CDATA[<p>Вот, пожалуйста, очень весёлый костыльчик <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /> Прошу отнестись с чувством юмора<br /></p><div class="codebox"><pre><code>Option Explicit
NumberStrokiInit() &#039; всегда в самом начале скрипта

MsgBox NumberStroki(anyValue)
If NumberStroki(&quot;##&quot;) = 5 Then MsgBox &quot;Line = &quot; &amp; NumberStroki
MsgBox NumberStroki()

Sub NumberStrokiInit()
    Dim strCode, objReplace, lngLine, arrCode, strCmdLn, strArg
    With CreateObject(&quot;Scripting.FileSystemObject&quot;).OpenTextFile(WScript.ScriptFullName, 1)
        strCode = .ReadAll
        .Close
    End With
    ExecuteGlobal &quot;Function Number&quot; &amp; &quot;Stroki(n): Number&quot; &amp; &quot;Stroki = n: End Function&quot;
    Execute &quot;Class clsReplace: Public lngLine, bMod: Public Default Function fReplace(strMatch, strSubMatch, lngPos, strSource): On Error Resume Next: If Eval(strSubMatch) &lt;&gt; lngLine Then fReplace = Replace(strMatch, strSubMatch, &quot;&quot;Number&quot; &amp; &quot;Stroki(&quot;&quot; &amp; lngLine &amp; &quot;&quot;)&quot;&quot;): bMod = True Else fReplace = strMatch End If: End Function: End Class&quot;
    Set objReplace = New clsReplace
    objReplace.bMod = False
    arrCode = Split(strCode, vbCrLf)
    With New RegExp
        .Pattern = &quot;\b(Number&quot; &amp; &quot;Stroki\ {0,}(?:|\( {0,}(?:|&quot;&quot;[^&quot;&quot;]*&quot;&quot;|[A-Za-z_]{1,}\w{0,}|\d{1,}) {0,}\)))\ {0,}(?:[&gt;&lt;+*\\/\-\^&#039;:=&amp;\r\n]|$)&quot;
        .Global = True
        .IgnoreCase = True
        For lngLine = 0 To Ubound(arrCode)
            objReplace.lngLine = lngLine + 1
            arrCode(lngLine) = .Replace(arrCode(lngLine), objReplace)
        Next
    End With
    strCode = Join(arrCode, vbCrLf)
    If objReplace.bMod Then
        With CreateObject(&quot;Scripting.FileSystemObject&quot;).OpenTextFile(WScript.ScriptFullName, 2, True)
            .Write strCode
            .Close
        End With
        strCmdLn = WScript.FullName &amp; &quot; &quot;&quot;&quot; &amp; WScript.ScriptFullName &amp; &quot;&quot;&quot;&quot;
        For Each strArg In WScript.Arguments
            strCmdLn = strCmdLn &amp; &quot; &quot;&quot;&quot; &amp; strArg &amp; &quot;&quot;&quot;&quot;
        Next
        CreateObject(&quot;WScript.Shell&quot;).Run strCmdLn
        WScript.Quit
    End If
End Sub
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[omegastripes]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29228</uri>
			</author>
			<updated>2014-04-09T22:59:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=81613#p81613</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Как определить порядковый номер строки запущенного скрипта]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=81318#p81318" />
			<content type="html"><![CDATA[<p>Возможно ли вывести порядковый номер строки, исполняемого скрипта определенной метки:</p><p>MsgBox &quot;Команда MsgBox расположена в скрипте 1.vbs строке № =&quot; &amp;NumberStroki</p><br /><p>Более подробно описал для чего:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>Есть какой-то скрипт у которого возможны ошибки в его работе которые иногда невозможно воспроизвести во время полноценной отладки. Поэтому хочу создать журнал в котором будет кратко описан все этапы работы.<br />В коде будут описаны какие-то метки благодаря которым можно будет определить на какой метке &quot;зарубился&quot; скрипт и выполняя какую операцию и с какими данными, но что б не проставлять каждую метку вручную подумал можно использовать номер строки и тогда б это выглядело так (может структура будет другой):</p><p>Например стандартная работа:<br />Сработала строка в коде №1 Начало работы скрипта.<br />Сработала строка в коде №2 Блок обработки массива такого-то.<br />Сработала строка в коде №3 Блок обработки массива такого-то закончен.<br />Сработала строка в коде №4 Завершение работы скрипта.</p><br /><p>Работа при которой произошла ошибка:<br />Сработала строка в коде №1 Начало работы скрипта.<br />Сработала строка в коде №2 Блок обработки массива такого-то.<br />Сработала строка в коде №3 Блок обработки массива такого-то закончен.<br />Сработала строка в коде №1 Начало работы скрипта.<br />Сработала строка в коде №2 Блок обработки массива такого-то.<br />Сработала строка в коде №3 Блок обработки массива такого-то закончен.<br />Сработала строка в коде №4 Завершение работы скрипта.</p><p>Получается одна строка в коде была пропущена означает что там была ошибка параметры были такие-то такие-то было тото-тото. Произошло из-за того-то того-то. </p><p>И уже потом можно будет разобраться из-за чего это произошло.</p></div></div>]]></content>
			<author>
				<name><![CDATA[wildwolf007]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30994</uri>
			</author>
			<updated>2014-03-30T12:22:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=81318#p81318</id>
		</entry>
</feed>
