<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: Как определить порядковый номер строки запущенного скрипта]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9432</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9432&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Как определить порядковый номер строки запущенного скрипта».]]></description>
		<lastBuildDate>Wed, 09 Apr 2014 22:59:47 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Как определить порядковый номер строки запущенного скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81613#p81613</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (omegastripes)]]></author>
			<pubDate>Wed, 09 Apr 2014 22:59:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81613#p81613</guid>
		</item>
		<item>
			<title><![CDATA[VBS: Как определить порядковый номер строки запущенного скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81318#p81318</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Sun, 30 Mar 2014 12:22:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81318#p81318</guid>
		</item>
	</channel>
</rss>
