<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; SciTE: запуск выделенной части кода]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=694</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=694&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «SciTE: запуск выделенной части кода».]]></description>
		<lastBuildDate>Mon, 17 Sep 2007 18:45:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: SciTE: запуск выделенной части кода]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=4849#p4849</link>
			<description><![CDATA[<p>Другой способ: например, для файлов WSH (vbs, js, wsf) можно ограничиться только изменениями в файле настроек:<br /></p><div class="codebox"><pre><code>command.name.4.*.vbs;*.js;*.wsf=Execute Selection
command.4.*.vbs;*.js;*.wsf=CMD /C MORE &gt; %TEMP%\tmp.$(FileExt) &amp;&amp; &quot;$(SciteDefaultHome)\scite.exe&quot; -menucommand:420 &amp;&amp; cscript /nologo %TEMP%\tmp.$(FileExt)
command.input.4.*.vbs;*.js;*.wsf=$(CurrentSelection)
command.mode.4.*.vbs;*.js;*.wsf=subsystem:console,savebefore:no</code></pre></div><p>Автор идеи - <strong>mozers</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Mon, 17 Sep 2007 18:45:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=4849#p4849</guid>
		</item>
		<item>
			<title><![CDATA[SciTE: запуск выделенной части кода]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=4848#p4848</link>
			<description><![CDATA[<p>Скрипт автоматически сохраняет выделенный код во временный файл и запускает его, позволяя таким образом исполнить набранный в редакторе код частично. Файл <strong>ExecSel.vbs</strong>.<br />Автор скрипта - <strong>mozers</strong>.<br /></p><div class="codebox"><pre><code>&#039; Execute Selection
&#039; Version: 1.0
&#039; Autor: mozers™
&#039; ------------------------------------------------
&#039; Выполняет выделенный в редакторе код
&#039; Для подключения добавьте в свой файл .properties следующие строки:
&#039;    file.patterns.execsel=*.bat;*.cmd;*.vbs;*.js;*.py;*.pyw
&#039;    command.name.2.$(file.patterns.execsel)=Execute Selection
&#039;    command.2.$(file.patterns.execsel)=cscript /nologo &quot;$(SciteDefaultHome)\tools\ExecSel.vbs&quot; $(FileExt)
&#039;    command.input.2.$(file.patterns.execsel)=$(CurrentSelection)
&#039;    command.mode.2.$(file.patterns.execsel)=subsystem:console,savebefore:no
&#039; ------------------------------------------------
Option Explicit
Dim WshShell, FSO, code, objArgs, file_ext, tmpfile, file, script, objExec, output

code = WScript.StdIn.ReadAll
If code = &quot;&quot; Then WScript.Quit

Set objArgs = WScript.Arguments
If objArgs.Count &lt; 1 then WScript.Quit
file_ext = UCase(objArgs(0))

Set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)
Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)

tmpfile = WshShell.ExpandEnvironmentStrings(&quot;%TEMP%\&quot; &amp; &quot;$execsel.&quot; &amp; file_ext)
Set file = FSO.OpenTextFile(tmpfile, 2, True)
file.Write code
file.Close

If file_ext = &quot;VBS&quot; Or file_ext = &quot;JS&quot; Then
    script = &quot;cscript /nologo&quot;
ElseIf file_ext = &quot;PY&quot; Or file_ext = &quot;PYW&quot; Then
    script = &quot;python&quot;
Else
    script = &quot;&quot;
End If

Set objExec = WshShell.Exec(&quot;%COMSPEC% /C &quot; &amp; script &amp; &quot; &quot;&quot;&quot; &amp; tmpfile &amp; &quot;&quot;&quot; 2&gt;&amp;1&quot;)
Do While objExec.Status = 0
    output = output &amp; ObjExec.StdOut.ReadAll
    WScript.Sleep 100
Loop
output = DosToWin(output)
WScript.Echo output
WScript.Quit

Function DosToWin(s)
    Dim i, k, ss
    ss = &quot;&quot;
    For i = 1 To Len(s)
        k = Asc(Mid(s, i, 1))
        If (128 &lt;= k) And (k &lt;= 175) Then
            k = k + 64
        ElseIf (224 &lt;= k) And (k &lt;= 239) Then
            k = k + 16
        ElseIf k = 240 Then
            k = 168
        ElseIf k = 241 Then
            k = 184
        End If
        ss = ss + Chr(k)
    Next
    DosToWin = ss
End Function</code></pre></div><p>Примечание: если вы установите этот скрипт действительно под номером команды 2, автоматически появится шорткат Ctrl+2 (первые 10 шорткатов появляются автоматом в зависимости от номера команды). Обратите внимание, что меню Tools отображается по-разному для разных расширений файлов.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Mon, 17 Sep 2007 18:36:29 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=4848#p4848</guid>
		</item>
	</channel>
</rss>
