<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: Как снизить нагрузку, создаваемую сценарием?]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9273</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9273&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: Как снизить нагрузку, создаваемую сценарием?».]]></description>
		<lastBuildDate>Tue, 18 Feb 2014 13:24:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: Как снизить нагрузку, создаваемую сценарием?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80164#p80164</link>
			<description><![CDATA[<p><img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Действительно, время уменьшилось, Просто у меня видимо система не столь сильна, что даже с &quot;добавками&quot; приходится 79 секунд ждать <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (fomenos)]]></author>
			<pubDate>Tue, 18 Feb 2014 13:24:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80164#p80164</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как снизить нагрузку, создаваемую сценарием?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80160#p80160</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>и время, затраченное на рисование не изменяется.</p></blockquote></div><p>Как говорил один товарищч — «Нэ вэрю».</p><p>Ваш код — 298.0781 секунд. С моими добавками:<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"><div class="codebox"><pre><code>Option Explicit

Dim lngTime

lngTime = Timer

dim oWord, oDoc, oSel, i, MyText

Set oWord = CreateObject(&quot;Word.Application&quot;)

oWord.Visible = False
oWord.ScreenUpdating = False

Set oDoc = oWord.Documents
oDoc.Add()
 
dim radian, pi, deltaangle
PI=4*atn(1)
radian=PI/180
deltaangle=30*radian
 
dim shpCanvas
Set shpCanvas = oDoc(1).Shapes.AddCanvas(10, 10, 450, 300) 
shpCanvas.WrapFormat.Type = 7 
dim count
count = 0
Sub Ris(x,y, len, angle)
dim color, xnew, ynew
    if len&lt;1 then
        Exit Sub        
    end if
    if len&lt;15 then 
        color = RGB(0, 255, 51)
    else
        color = RGB(0, 0, 255)
    end if    
    xnew=x+round(len*cos(angle))
    ynew=y+round(len*sin(angle))
    shpCanvas.CanvasItems.AddLine x,y,xnew,ynew
    count = count + 1
    shpCanvas.CanvasItems(count).Line.ForeColor.RGB = color
    Call Ris(xnew, ynew, len*0.65, angle-deltaangle)
    Call Ris(xnew, ynew, len*0.65, angle+deltaangle)
End Sub

Call Ris(50,280,80,-40*radian)

oWord.ScreenUpdating = True
oWord.Visible = True

WScript.Echo Timer - lngTime</code></pre></div></div></div><p>— 8.640625 секунд.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 18 Feb 2014 12:59:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80160#p80160</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как снизить нагрузку, создаваемую сценарием?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80158#p80158</link>
			<description><![CDATA[<p>Попробовал, но проблемы не решает. Все ровно идет нагрузка на процессор и время, затраченное на рисование не изменяется. Хотя аналогичный алгоритм работает намного быстрее, если использовать графические компоненты библиотеки WSO. Просто хочется именно в Word все это делать.</p>]]></description>
			<author><![CDATA[null@example.com (fomenos)]]></author>
			<pubDate>Tue, 18 Feb 2014 12:43:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80158#p80158</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как снизить нагрузку, создаваемую сценарием?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80157#p80157</link>
			<description><![CDATA[<div class="codebox"><pre><code>objWord.Visible = False
objWord.ScreenUpdating = False
</code></pre></div><p>в начале и:<br /></p><div class="codebox"><pre><code>objWord.ScreenUpdating = True
objWord.Visible = True
</code></pre></div><p>— в конце, после всех рисований.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 18 Feb 2014 12:22:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80157#p80157</guid>
		</item>
		<item>
			<title><![CDATA[VBScript: Как снизить нагрузку, создаваемую сценарием?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80153#p80153</link>
			<description><![CDATA[<p>Есть такой пример кода на VBScript:</p><div class="codebox"><pre><code>
Option Explicit

dim oWord, oDoc, oSel, i, MyText

Set oWord = CreateObject(&quot;Word.Application&quot;)
Set oDoc = oWord.Documents
oDoc.Add()
oWord.Visible = True

 
dim radian, pi, deltaangle
PI=4*atn(1)
radian=PI/180
deltaangle=30*radian
 
dim shpCanvas
Set shpCanvas = oDoc(1).Shapes.AddCanvas(10, 10, 450, 300) 
shpCanvas.WrapFormat.Type = 7 
dim count
count = 0
Sub Ris(x,y, len, angle)
dim color, xnew, ynew
    if len&lt;1 then
        Exit Sub        
    end if
    if len&lt;15 then 
        color = RGB(0, 255, 51)
    else
        color = RGB(0, 0, 255)
    end if    
    xnew=x+round(len*cos(angle))
    ynew=y+round(len*sin(angle))
    shpCanvas.CanvasItems.AddLine x,y,xnew,ynew
    count = count + 1
    shpCanvas.CanvasItems(count).Line.ForeColor.RGB = color
    Call Ris(xnew, ynew, len*0.65, angle-deltaangle)
    Call Ris(xnew, ynew, len*0.65, angle+deltaangle)
End Sub

Call Ris(50,280,80,-40*radian)
</code></pre></div><p>После запуска сценария создается новый документ Word, и в нем посредством классов объектной модели Рисуется дерево Пифагора (фракталы). Все работает через рекурсию.<br />Проблема в том, что при рисовании создается сильная нагрузка на процессор, да и сам процесс рисования слишком долго происходит. Как можно решить данную проблему?</p>]]></description>
			<author><![CDATA[null@example.com (fomenos)]]></author>
			<pubDate>Tue, 18 Feb 2014 11:20:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80153#p80153</guid>
		</item>
	</channel>
</rss>
