<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF73%3AGambas</id>
		<title>LXF73:Gambas - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF73%3AGambas"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;action=history"/>
		<updated>2026-05-13T00:18:58Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4693&amp;oldid=prev</id>
		<title>Yaleks: шаблон</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4693&amp;oldid=prev"/>
				<updated>2008-05-22T11:00:13Z</updated>
		
		<summary type="html">&lt;p&gt;шаблон&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 11:00, 22 мая 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{Цикл/Gambas}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Построение приложения ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Построение приложения ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''часть 3 Эдисон ошибался. Забудьте об упорном труде: с точки зрения '''доктора Марка Александра Бэйна''' (Dr Mark alexander Bain), гений на 100 % состоит из перекладывания работы на других. Так что садитесь, складывайте ноги на стол и позвольте Gambas сделать за вас всю работу…''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''часть 3 Эдисон ошибался. Забудьте об упорном труде: с точки зрения '''доктора Марка Александра Бэйна''' (Dr Mark alexander Bain), гений на 100 % состоит из перекладывания работы на других. Так что садитесь, складывайте ноги на стол и позвольте Gambas сделать за вас всю работу…''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4602&amp;oldid=prev</id>
		<title>Lockal: унесите кавычки!</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4602&amp;oldid=prev"/>
				<updated>2008-05-15T15:21:47Z</updated>
		
		<summary type="html">&lt;p&gt;унесите кавычки!&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 15:21, 15 мая 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnWhois_Click()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnWhois_Click()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM filename AS String&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM filename AS String&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;filename = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;/tmp/whois.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tmp”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;filename = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;/tmp/whois.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tmp&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF (txtUrl.Text) THEN&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF (txtUrl.Text) THEN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“whois “ &lt;/del&gt;&amp;amp; txtUrl.Text &amp;amp; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;&amp;amp; filename WAIT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;whois &amp;quot; &lt;/ins&gt;&amp;amp; txtUrl.Text &amp;amp; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; filename WAIT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = File.Load(filename)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = File.Load(filename)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ELSE&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ELSE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 52:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 52:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnWhois_Click()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnWhois_Click()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM filename AS String&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM filename AS String&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;filename = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;/tmp/whois.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tmp”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;filename = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;/tmp/whois.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tmp&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;TRY SHELL &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“whois “ &lt;/del&gt;&amp;amp; txtUrl.Text &amp;amp; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;&amp;amp; filename WAIT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;TRY SHELL &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;whois &amp;quot; &lt;/ins&gt;&amp;amp; txtUrl.Text &amp;amp; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; filename WAIT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF ERROR THEN&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF ERROR THEN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = File.Load(filename)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = File.Load(filename)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 112:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 112:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB tcpdump_update()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB tcpdump_update()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM command AS String&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM command AS String&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;command = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“if &lt;/del&gt;[ ! \&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;”&lt;/del&gt;$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)\&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;];&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;command = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;if &lt;/ins&gt;[ ! \&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)\&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;];&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;then” &lt;/del&gt;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;then&amp;quot; &lt;/ins&gt;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“ &lt;/del&gt;sudo /usr/sbin/tcpdump &amp;gt; /tmp/bainm_tcpdump.tmp;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;sudo /usr/sbin/tcpdump &amp;gt; /tmp/bainm_tcpdump.tmp;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“ fi”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; fi&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL command&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL command&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = File.Load(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;/tmp/bainm_tcpdump.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tmp”&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtResult.Text = File.Load(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;/tmp/bainm_tcpdump.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tmp&amp;quot;&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnUpdate_Click()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnUpdate_Click()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 127:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 127:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;образом:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;образом:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;if [ ! &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;if [ ! &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;sudo /usr/sbin/tcpdump &amp;gt; /tmp/bainm_tcpdump.tmp&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;sudo /usr/sbin/tcpdump &amp;gt; /tmp/bainm_tcpdump.tmp&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 216:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 216:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM filename AS String&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM filename AS String&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM tmp_process_id AS String&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;DIM tmp_process_id AS String&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;filename = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;/tmp/bainm_tcpdump_process.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tmp”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;filename = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;/tmp/bainm_tcpdump_process.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tmp&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;command =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;command =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“ps &lt;/del&gt;-ef | grep /usr/sbin/tcpdump|grep -v &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;grep” &lt;/del&gt;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;ps &lt;/ins&gt;-ef | grep /usr/sbin/tcpdump|grep -v &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;grep&amp;quot; &lt;/ins&gt;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;| awk &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;‘&lt;/del&gt;{print $2}&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;’ &lt;/del&gt;&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“ &lt;/del&gt;&amp;amp; filename&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;| awk &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;{print $2}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;' &lt;/ins&gt;&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; filename&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL command WAIT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL command WAIT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tmp_process_id = file.Load(filename)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tmp_process_id = file.Load(filename)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“sudo &lt;/del&gt;kill -9 &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“ &lt;/del&gt;&amp;amp; tmp_process_id WAIT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SHELL &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;sudo &lt;/ins&gt;kill -9 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; tmp_process_id WAIT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 276:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 276:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnGo_Click()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnGo_Click()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF (txtUrl.text) THEN&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF (txtUrl.text) THEN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;webBrowser.Path = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“http&lt;/del&gt;://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;&amp;amp; txtUrl.Text&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;webBrowser.Path = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;http&lt;/ins&gt;://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; txtUrl.Text&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 290:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 290:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnGo_Click()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnGo_Click()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF (txtUrl.text) THEN&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;IF (txtUrl.text) THEN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;webBrowser.Path = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“http&lt;/del&gt;://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;&amp;amp; txtUrl.Text&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;webBrowser.Path = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;http&lt;/ins&gt;://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; txtUrl.Text&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END IF&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtIp.Text=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;””&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtIp.Text=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;dns.HostName = txtUrl.text&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;dns.HostName = txtUrl.text&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;dns.GetHostIP&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;dns.GetHostIP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 338:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 338:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PRIVATE htmlfile AS String&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PRIVATE htmlfile AS String&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnGo_Click()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB btnGo_Click()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http.URL = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“http&lt;/del&gt;://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;&amp;amp; txtUrl.Text&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http.URL = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;http&lt;/ins&gt;://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; txtUrl.Text&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http.Get(htmlfile)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http.Get(htmlfile)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;loadFile&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;loadFile&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PRIVATE SUB loadFile()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PRIVATE SUB loadFile()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;webBrowser.Path = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“file&lt;/del&gt;:///&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;” &lt;/del&gt;&amp;amp; htmlfile&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;webBrowser.Path = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;file&lt;/ins&gt;:///&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; &lt;/ins&gt;&amp;amp; htmlfile&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB Form_Open()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB Form_Open()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http = NEW HttpClient&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http = NEW HttpClient&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;htmlfile = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;/tmp/test.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;html”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;htmlfile = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;/tmp/test.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;html&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 358:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 358:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB tbsEditor_Click()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;PUBLIC SUB tbsEditor_Click()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SELECT CASE tbsEditor.Text&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;SELECT CASE tbsEditor.Text&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;CASE &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“Viewer”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;CASE &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;Viewer&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;loadFile&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;loadFile&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;CASE &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“Editor”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;CASE &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;Editor&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtHtml.Text = File.Load(htmlfile)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;txtHtml.Text = File.Load(htmlfile)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END SELECT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END SELECT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lockal</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4597&amp;oldid=prev</id>
		<title>Yaleks: викификация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4597&amp;oldid=prev"/>
				<updated>2008-05-15T14:59:30Z</updated>
		
		<summary type="html">&lt;p&gt;викификация&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 14:59, 15 мая 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Построение приложения ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Построение приложения ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''часть 3 Эдисон ошибался. Забудьте об упорном труде: с точки зрения '''доктора Марка Александра Бэйна''' (Dr Mark alexander Bain), гений на 100% состоит из перекладывания работы на других. Так что садитесь, складывайте ноги на стол и позвольте Gambas сделать за вас всю &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;работу...&lt;/del&gt;''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''часть 3 Эдисон ошибался. Забудьте об упорном труде: с точки зрения '''доктора Марка Александра Бэйна''' (Dr Mark alexander Bain), гений на 100 % состоит из перекладывания работы на других. Так что садитесь, складывайте ноги на стол и позвольте Gambas сделать за вас всю &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;работу…&lt;/ins&gt;''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Я, вероятно, уже упоминал об этом, но повторюсь: все хорошие программисты &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;ленивы. Это не значит, что они ничего&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Я, вероятно, уже упоминал об этом, но повторюсь: все хорошие программисты &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;ленивы. Это не значит, что они ничего&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;не делают, нет, но они используют свой мозг, а не пальцы.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;не делают, нет, но они используют свой мозг, а не пальцы.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Мы начали постигать это в прошлом месяце, когда рассматривали&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Мы начали постигать это в прошлом месяце, когда рассматривали&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;пытаетесь сделать сейчас. Особенно это верно, если вы имеете дело с&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;пытаетесь сделать сейчас. Особенно это верно, если вы имеете дело с&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Linux. Предположим, например, что вы ищите владельца web-сайта. Это&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Linux. Предположим, например, что вы ищите владельца web-сайта. Это&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;очень просто &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;откройте командную строку и наберите whois&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;очень просто &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;откройте командную строку и наберите whois&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;linuxformat.ru. Вы увидите большой список, содержащий море информации вроде названия домена, имени того кто его регистрировал, его&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;linuxformat.ru. Вы увидите большой список, содержащий море информации вроде названия домена, имени того кто его регистрировал, его&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;физический адрес, дату регистрации и IP-адрес серверов Linux Format.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;физический адрес, дату регистрации и IP-адрес серверов Linux Format.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== как сделать то же самое при помощи gambas? ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== как сделать то же самое при помощи gambas? ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;если вы начали отвечать, что нужно поискать в доменных базах данных&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;если вы начали отвечать, что нужно поискать в доменных базах данных&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;или начать поиск NIC-записи &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;остановитесь! Вероятно, вы не слушали&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;или начать поиск NIC-записи &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;остановитесь! Вероятно, вы не слушали&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;того, что я вам говорил. если же вы ответили «надо схитрить» &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;- &lt;/del&gt;купите&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;того, что я вам говорил. если же вы ответили «надо схитрить» &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;купите&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;себе пива, вы уже думаете как хороший программист. Главный вопрос:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;себе пива, вы уже думаете как хороший программист. Главный вопрос:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;«как именно можно схитрить?».&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;«как именно можно схитрить?».&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 62:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 62:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Тут команда whois выполняется вне зависимости от того, что вы&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Тут команда whois выполняется вне зависимости от того, что вы&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ввели, но результат обрабатывается по-разному в зависимости от того,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ввели, но результат обрабатывается по-разному в зависимости от того,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;была ошибка или нет. какой из методов лучше использовать &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;это ваш&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;была ошибка или нет. какой из методов лучше использовать &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;это ваш&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;выбор, плюсы и минусы есть у обоих вариантов. Первый влечет необходимость обдумать и предотвратить все возможные ошибки, но зато даёт&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;выбор, плюсы и минусы есть у обоих вариантов. Первый влечет необходимость обдумать и предотвратить все возможные ошибки, но зато даёт&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;уверенность, что указание некорректных данных просто невозможно.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;уверенность, что указание некорректных данных просто невозможно.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Второй гарантирует, что все ошибки будут обработаны, но от программиста требуется позаботиться об удачном сообщении для пользователя.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Второй гарантирует, что все ошибки будут обработаны, но от программиста требуется позаботиться об удачном сообщении для пользователя.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Но какой бы вы способ ни выбрали &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;важно, чтобы он был, и чтобы программа не рушилась.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Но какой бы вы способ ни выбрали &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;важно, чтобы он был, и чтобы программа не рушилась.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вторая кнопка нужна для закрытия формы, каждая форма нуждается в такой. Итак, если вы назвали кнопку btnClose, то код будет&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вторая кнопка нужна для закрытия формы, каждая форма нуждается в такой. Итак, если вы назвали кнопку btnClose, то код будет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 105:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 105:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;как правило, вы запускаете tcpdump и наблюдаете вывод в консольном окне. Сделаем то же самое при помощи Gambas. как всегда,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;как правило, вы запускаете tcpdump и наблюдаете вывод в консольном окне. Сделаем то же самое при помощи Gambas. как всегда,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;нам потребуется форма, в этот раз &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;с многострочным полем ввода&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;нам потребуется форма, в этот раз &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;с многострочным полем ввода&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(txtResult) и двумя кнопками (назовём их btnUpdate и btnClose).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(txtResult) и двумя кнопками (назовём их btnUpdate и btnClose).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 136:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 136:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ответ: потому, что команда запускается при каждом нажатии на&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ответ: потому, что команда запускается при каждом нажатии на&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;кнопку. Так что в этом случае окажется запущено множество версий&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;кнопку. Так что в этом случае окажется запущено множество версий&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tcpdump. Мой скрипт выполняет проверку, запущено ли уже это приложение, перед тем как пытаться активировать его снова. Вы также можете спросить, что значит код grep -v grep. его задача проста &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;он удаляет ID дополнительных процессов, запущенных самим grep.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tcpdump. Мой скрипт выполняет проверку, запущено ли уже это приложение, перед тем как пытаться активировать его снова. Вы также можете спросить, что значит код grep -v grep. его задача проста &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;он удаляет ID дополнительных процессов, запущенных самим grep.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== надоело нажимать на кнопку? ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== надоело нажимать на кнопку? ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 152:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 152:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;END&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=250px}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=250px}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Наше приложение работает точно так, как заказывали &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;запускает&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Наше приложение работает точно так, как заказывали &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;запускает&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tcpdump и показывает его вывод, но вот только пользователь должен&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tcpdump и показывает его вывод, но вот только пользователь должен&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;всё время нажимать на кнопку, чтобы видеть результат. Мы можем&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;всё время нажимать на кнопку, чтобы видеть результат. Мы можем&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 158:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 158:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;таймер (его иконка похожа на часы) из панели инструментов и нарисуйте на своей форме. Не важно, где именно, поскольку таймер всё равно&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;таймер (его иконка похожа на часы) из панели инструментов и нарисуйте на своей форме. Не важно, где именно, поскольку таймер всё равно&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;не отображается, когда программа запущена. Не забывайте сменить&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;не отображается, когда программа запущена. Не забывайте сменить&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;имя таймера на нечто полезное ( я назвал его tcpdumpTimer). если&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;имя таймера на нечто полезное (я назвал его tcpdumpTimer). если&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;дважды щелкните на этом объекте, Gambas откроет окно кода, и вы&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;дважды щелкните на этом объекте, Gambas откроет окно кода, и вы&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;увидите:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;увидите:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 313:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 313:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Спрятать текст в поле ввода можно, если установить свойство Password равным True.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Спрятать текст в поле ввода можно, если установить свойство Password равным True.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=250px}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=250px}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Мы управились с созданием простого web-браузера, но цена ему &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;–&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Мы управились с созданием простого web-браузера, но цена ему &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;грош. Он стал чуть-чуть интереснее после добавления IP-адреса сервера, на котором находится та или иная страница. а теперь мы можем&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;грош. Он стал чуть-чуть интереснее после добавления IP-адреса сервера, на котором находится та или иная страница. а теперь мы можем&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;сделать простой редактор HTML. его принцип работы будет немного&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;сделать простой редактор HTML. его принцип работы будет немного&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;отличаться от работы браузера &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;– &lt;/del&gt;вместо простого просмотра страницы&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;отличаться от работы браузера &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;— &lt;/ins&gt;вместо простого просмотра страницы&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;мы скачаем её, просмотрим и отредактируем текст, а потом загрузим&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;мы скачаем её, просмотрим и отредактируем текст, а потом загрузим&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;обратно на сервер. конечно, мы используем компоненты Gambas, чтобы&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;обратно на сервер. конечно, мы используем компоненты Gambas, чтобы&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4596&amp;oldid=prev</id>
		<title>Yaleks: Новая: == Построение приложения == ''часть 3 Эдисон ошибался. Забудьте об упорном труде: с точки зрения '''доктор...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF73:Gambas&amp;diff=4596&amp;oldid=prev"/>
				<updated>2008-05-15T14:59:00Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: == Построение приложения == &amp;#039;&amp;#039;часть 3 Эдисон ошибался. Забудьте об упорном труде: с точки зрения &amp;#039;&amp;#039;&amp;#039;доктор...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Построение приложения ==&lt;br /&gt;
''часть 3 Эдисон ошибался. Забудьте об упорном труде: с точки зрения '''доктора Марка Александра Бэйна''' (Dr Mark alexander Bain), гений на 100% состоит из перекладывания работы на других. Так что садитесь, складывайте ноги на стол и позвольте Gambas сделать за вас всю работу...''&lt;br /&gt;
&lt;br /&gt;
Я, вероятно, уже упоминал об этом, но повторюсь: все хорошие программисты – ленивы. Это не значит, что они ничего&lt;br /&gt;
не делают, нет, но они используют свой мозг, а не пальцы.&lt;br /&gt;
Мы начали постигать это в прошлом месяце, когда рассматривали&lt;br /&gt;
модули и классы. Сегодня мы продолжим превращение в идеального&lt;br /&gt;
ленивого программиста, рассмотрев, как можно заставить Gambas сделать нечто, что будет хорошо выглядеть, с минимальными затратами.&lt;br /&gt;
&lt;br /&gt;
Первое, что надо запомнить: обычно кто-то уже делал то, что вы&lt;br /&gt;
пытаетесь сделать сейчас. Особенно это верно, если вы имеете дело с&lt;br /&gt;
Linux. Предположим, например, что вы ищите владельца web-сайта. Это&lt;br /&gt;
очень просто – откройте командную строку и наберите whois&lt;br /&gt;
linuxformat.ru. Вы увидите большой список, содержащий море информации вроде названия домена, имени того кто его регистрировал, его&lt;br /&gt;
физический адрес, дату регистрации и IP-адрес серверов Linux Format.&lt;br /&gt;
&lt;br /&gt;
=== как сделать то же самое при помощи gambas? ===&lt;br /&gt;
если вы начали отвечать, что нужно поискать в доменных базах данных&lt;br /&gt;
или начать поиск NIC-записи – остановитесь! Вероятно, вы не слушали&lt;br /&gt;
того, что я вам говорил. если же вы ответили «надо схитрить» - купите&lt;br /&gt;
себе пива, вы уже думаете как хороший программист. Главный вопрос:&lt;br /&gt;
«как именно можно схитрить?».&lt;br /&gt;
&lt;br /&gt;
Ответ: используйте оператор Gambas ShELL, чтобы заставить Linux&lt;br /&gt;
сделать за вас всю тяжелую работу и использовать её результат в своей&lt;br /&gt;
программе. Итак, давайте начнём с создания формы, на которой содержатся поле ввода, многострочное поле ввода и пара кнопок. Не забывайте, что имена объектов имеют значение. Сейчас я назвал поле ввода&lt;br /&gt;
txtUrl, многострочное поле ввода txtResult и одну из кнопок btnWhois.&lt;br /&gt;
код, обрабатывающий нажатие этой кнопки, таков:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB btnWhois_Click()&lt;br /&gt;
DIM filename AS String&lt;br /&gt;
filename = “/tmp/whois.tmp”&lt;br /&gt;
IF (txtUrl.Text) THEN&lt;br /&gt;
SHELL “whois “ &amp;amp; txtUrl.Text &amp;amp; “&amp;gt;” &amp;amp; filename WAIT&lt;br /&gt;
txtResult.Text = File.Load(filename)&lt;br /&gt;
ELSE&lt;br /&gt;
txtResult.Text = “”&lt;br /&gt;
END IF&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Он очень простой. Сначала мы определяем имя файла&lt;br /&gt;
(/tmp/whois/tmp), а затем запускаем команду оболочки, которая берёт&lt;br /&gt;
адрес из txtUrl и выполняет для него whois, а затем сохраняет результат в текстовом файле. Так что если вы ввели linuxformat.ru, то в результате будет выполнена следующая команда:&lt;br /&gt;
 whois linuxformat.ru &amp;gt; /tmp/whois.tmp&lt;br /&gt;
Затем содержимое файла /tmp/whois.tmp помещается в многострочное поле ввода при помощи команды File.Load. Оператор IF&lt;br /&gt;
просто гарантирует, что если вы оставите поле ввода пустым, то ошибки&lt;br /&gt;
не произойдёт. Такой стиль кодирования не позволяет использовать&lt;br /&gt;
ошибочные данные, что предотвращает падение программы.&lt;br /&gt;
&lt;br /&gt;
другой способ состоит в обработке возникающих ошибок:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB btnWhois_Click()&lt;br /&gt;
DIM filename AS String&lt;br /&gt;
filename = “/tmp/whois.tmp”&lt;br /&gt;
TRY SHELL “whois “ &amp;amp; txtUrl.Text &amp;amp; “&amp;gt;” &amp;amp; filename WAIT&lt;br /&gt;
IF ERROR THEN&lt;br /&gt;
txtResult.Text = “”&lt;br /&gt;
END IF&lt;br /&gt;
txtResult.Text = File.Load(filename)&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Тут команда whois выполняется вне зависимости от того, что вы&lt;br /&gt;
ввели, но результат обрабатывается по-разному в зависимости от того,&lt;br /&gt;
была ошибка или нет. какой из методов лучше использовать – это ваш&lt;br /&gt;
выбор, плюсы и минусы есть у обоих вариантов. Первый влечет необходимость обдумать и предотвратить все возможные ошибки, но зато даёт&lt;br /&gt;
уверенность, что указание некорректных данных просто невозможно.&lt;br /&gt;
Второй гарантирует, что все ошибки будут обработаны, но от программиста требуется позаботиться об удачном сообщении для пользователя.&lt;br /&gt;
Но какой бы вы способ ни выбрали – важно, чтобы он был, и чтобы программа не рушилась.&lt;br /&gt;
&lt;br /&gt;
Вторая кнопка нужна для закрытия формы, каждая форма нуждается в такой. Итак, если вы назвали кнопку btnClose, то код будет&lt;br /&gt;
следующим:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB btnClose_Click()&lt;br /&gt;
ME.Close&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Нужно упомянуть о значении параметра WAIT оператора ShELL.&lt;br /&gt;
если вы использовали WAIT, то программа будет ожидать завершения&lt;br /&gt;
команды перед тем, как продолжить работу. если же WAITE не был&lt;br /&gt;
использован, то команда оболочки будет работать в фоновом режиме,&lt;br /&gt;
одновременно с вашим приложением. Фоновый режим полезен, если&lt;br /&gt;
вы хотите запустить команду оболочки и оставить её в работающем&lt;br /&gt;
состоянии. как всегда, лучше всего рассмотреть это на примере из&lt;br /&gt;
реальной жизни.&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Права достуПа дЛя TCPduMP&lt;br /&gt;
|Содержание=&lt;br /&gt;
как правило tcpdump может быть&lt;br /&gt;
запущен только пользователем&lt;br /&gt;
root. если вы хотите запустить его&lt;br /&gt;
от имени другого пользователя,&lt;br /&gt;
вам потребуется изменить файл&lt;br /&gt;
sudo (/etc/sudo), добавив в него&lt;br /&gt;
строку подобную следующей&lt;br /&gt;
 bainm ALL=(ALL) NOPASSWD: ALL&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
Представьте, что вам надо создать приложение с графическим&lt;br /&gt;
интерфейсом пользователя, которое отслеживает сетевой трафик.&lt;br /&gt;
Практически это значит, что вы хотите читать заголовки всех пакетов&lt;br /&gt;
данных, путешествующих по вашей сети. Я надеюсь, что теперь вы&lt;br /&gt;
точно не спросите «как мне это сделать?». Вместо этого вы зададите&lt;br /&gt;
вопрос «Существует ли приложение Linux, которое уже делает всё,&lt;br /&gt;
что нужно?». В нашем случае ответ: tcpdump.&lt;br /&gt;
&lt;br /&gt;
как правило, вы запускаете tcpdump и наблюдаете вывод в консольном окне. Сделаем то же самое при помощи Gambas. как всегда,&lt;br /&gt;
нам потребуется форма, в этот раз – с многострочным полем ввода&lt;br /&gt;
(txtResult) и двумя кнопками (назовём их btnUpdate и btnClose).&lt;br /&gt;
&lt;br /&gt;
добавим немножко кода&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB tcpdump_update()&lt;br /&gt;
DIM command AS String&lt;br /&gt;
command = “if [ ! \”$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)\” ];&lt;br /&gt;
then” &amp;amp;&lt;br /&gt;
“ sudo /usr/sbin/tcpdump &amp;gt; /tmp/bainm_tcpdump.tmp;” &amp;amp;&lt;br /&gt;
“ fi”&lt;br /&gt;
SHELL command&lt;br /&gt;
txtResult.Text = File.Load(“/tmp/bainm_tcpdump.tmp”)&lt;br /&gt;
END&lt;br /&gt;
PUBLIC SUB btnUpdate_Click()&lt;br /&gt;
tcpdump_update&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этом примере команда, которая будет запущена в командной&lt;br /&gt;
строке Linux, хранится в переменной command и выглядит следующим&lt;br /&gt;
образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ ! “$(ps -ef | grep /usr/sbin/tcpdump | grep -v grep)” ]&lt;br /&gt;
then&lt;br /&gt;
sudo /usr/sbin/tcpdump &amp;gt; /tmp/bainm_tcpdump.tmp&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вы спросите, почему бы мне просто не запустить&lt;br /&gt;
 sudo /usr/sbin/tcpdump &amp;gt; /tmp/bainm_tcpdump.tmp&lt;br /&gt;
Ответ: потому, что команда запускается при каждом нажатии на&lt;br /&gt;
кнопку. Так что в этом случае окажется запущено множество версий&lt;br /&gt;
tcpdump. Мой скрипт выполняет проверку, запущено ли уже это приложение, перед тем как пытаться активировать его снова. Вы также можете спросить, что значит код grep -v grep. его задача проста – он удаляет ID дополнительных процессов, запущенных самим grep.&lt;br /&gt;
&lt;br /&gt;
=== надоело нажимать на кнопку? ===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=настроЙка своЙств обЪекта&lt;br /&gt;
|Содержание=&lt;br /&gt;
Свойства объекта можно изменить двумя способами. Первый – через окно&lt;br /&gt;
свойств объекта в Gambas. Второй – установкой нужных значений прямо из&lt;br /&gt;
программы. Например, следующий код включает таймер и задаёт интервал&lt;br /&gt;
срабатывания равным пяти секундам:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB Form_Open()&lt;br /&gt;
tcpdumpTimer.Enabled = TRUE&lt;br /&gt;
tcpdumpTimer.Delay = 5000&lt;br /&gt;
END&amp;lt;/source&amp;gt;&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
Наше приложение работает точно так, как заказывали – запускает&lt;br /&gt;
tcpdump и показывает его вывод, но вот только пользователь должен&lt;br /&gt;
всё время нажимать на кнопку, чтобы видеть результат. Мы можем&lt;br /&gt;
автоматизировать этот процесс, добавив в программу таймер. Выберите&lt;br /&gt;
таймер (его иконка похожа на часы) из панели инструментов и нарисуйте на своей форме. Не важно, где именно, поскольку таймер всё равно&lt;br /&gt;
не отображается, когда программа запущена. Не забывайте сменить&lt;br /&gt;
имя таймера на нечто полезное ( я назвал его tcpdumpTimer). если&lt;br /&gt;
дважды щелкните на этом объекте, Gambas откроет окно кода, и вы&lt;br /&gt;
увидите:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB tcpdumpTimer_Timer()&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Отредактируйте его следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB tcpdumpTimer_Timer()&lt;br /&gt;
tcpdump_update&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если вы сейчас запустите программу, ничего не изменится, так как&lt;br /&gt;
таймер по умолчанию отключен. Д ля того, чтобы его включить, перейдите к окну свойств и измените значение свойства Enable c False на&lt;br /&gt;
True. Обратите внимание на параметр Delay. Это время в миллисекундах между запусками процедуры таймера. Задайте его равным 5000&lt;br /&gt;
(пять секунд), это позволит вам постоянно видеть изменения, но не&lt;br /&gt;
перегружать процессор. Вы даже можете удалить кнопку btnUpdate,&lt;br /&gt;
если хотите.&lt;br /&gt;
&lt;br /&gt;
=== Уходя, гасите всех. Или, все же, свет? ===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Запускаемый класс&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если в вашем проекте несколько&lt;br /&gt;
форм, вы можете указать, которую&lt;br /&gt;
из них запускать при старте&lt;br /&gt;
проекта. Д ля этого перейдите в&lt;br /&gt;
окно проекта, щелкните правой&lt;br /&gt;
кнопкой на форме, с которой вы&lt;br /&gt;
хотите начать работу приложения,&lt;br /&gt;
и выберите пункт меню «Startup&lt;br /&gt;
Class». Или же вы можете создать&lt;br /&gt;
модуль, указать его в качестве&lt;br /&gt;
запускаемого класса и добавить&lt;br /&gt;
примерно такой код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB Main()&lt;br /&gt;
frmWebBrowser.Show&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Конечно, вам нужно будет заменить&lt;br /&gt;
имя формы на то, которое&lt;br /&gt;
используется в вашем проекте.&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
Если вы закроете приложение Gambas и наберёте в консоли следующую команду,&lt;br /&gt;
 ps -ef|grep tcpdump&lt;br /&gt;
то вероятно увидите в результате нечто вроде этого:&lt;br /&gt;
 root 1443 1437 0 15:37 ? 00:00:00 /usr/sbin/tcpdump&lt;br /&gt;
Это произошло потому, что наше приложение запустило tcpdump и&lt;br /&gt;
оставило его работать в фоновом режиме. Б ыло бы правильнее выключать его после того, как мы закончили.&lt;br /&gt;
&lt;br /&gt;
Это можно сделать в процедуре Form_Close:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB Form_Close()&lt;br /&gt;
DIM command AS String&lt;br /&gt;
DIM filename AS String&lt;br /&gt;
DIM tmp_process_id AS String&lt;br /&gt;
filename = “/tmp/bainm_tcpdump_process.tmp”&lt;br /&gt;
command =&lt;br /&gt;
“ps -ef | grep /usr/sbin/tcpdump|grep -v grep” &amp;amp;&lt;br /&gt;
“| awk ‘{print $2}’ &amp;gt; “ &amp;amp; filename&lt;br /&gt;
SHELL command WAIT&lt;br /&gt;
tmp_process_id = file.Load(filename)&lt;br /&gt;
SHELL “sudo kill -9 “ &amp;amp; tmp_process_id WAIT&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В этой подпрограмме выполняются два SHELL-оператора. Первый&lt;br /&gt;
определяет ID процесса tcpdump. Второй убивает процесс. К расота этой&lt;br /&gt;
технологии в том, что вы можете использовать любые команды Linux.&lt;br /&gt;
Например, вы можете создать графическую оболочку для программы&lt;br /&gt;
top, используя таймер и запуская top -n1 &amp;gt; /tmp/top.tmp для выполнения одной итерации, читая затем результаты при помощи file.load.&lt;br /&gt;
&lt;br /&gt;
Рассмотрев некоторые вещи, которые Linux может сделать для нас,&lt;br /&gt;
вернёмся к встроенным возможностям Gambas.&lt;br /&gt;
&lt;br /&gt;
=== Меню Gambas ===&lt;br /&gt;
До сих пор мы использовали кнопки для того, чтобы выполнить любые&lt;br /&gt;
действия с нашей формой. Это работает хорошо, но приводит к загромождению экрана и вызывает проблемы корректной модификации расположения кнопок при изменении размера формы. Д ля решения этих&lt;br /&gt;
проблем существуют меню Gambas.&lt;br /&gt;
&lt;br /&gt;
Откройте форму в режиме дизайнера, щелкните на ней правой&lt;br /&gt;
кнопкой и выберите Menu Editor (или просто наберите Ctrl+E). Теперь&lt;br /&gt;
вы можете построить структуру меню вашего приложения, добавляя в&lt;br /&gt;
него элементы. К ак всегда, не забывайте давать им осмысленные имена&lt;br /&gt;
вместо Menu1, Menu2 и так далее. Д ля создания подменю «сдвигайте» нужные элементы. К огда вы закончите и закроете редактор, новое&lt;br /&gt;
меню отобразится на форме.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда главное меню находится на своем месте, надо придать&lt;br /&gt;
ему немного функциональности. Д ля начала добавим пункт для закрытия формы. Предположим, вы создали меню с названием Close и именем mnuClose. Тогда его код будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB mnuClose_Click()&lt;br /&gt;
ME.Close&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Итак, мы получили чистую, красивую, профессионально выглядящую форму, которая действительно выполняет некоторые довольно&lt;br /&gt;
сложные задачи (или как минимум управляет процессами, которые&lt;br /&gt;
делают всё грязную работу). Вы увидели, как все Linux и Unix программисты, работавшие до нас, помогают нам хорошо жить и выглядеть.&lt;br /&gt;
Посмотрим теперь, как разработчики Gambas могут нам помочь стать&lt;br /&gt;
настоящими ленивыми программистами.&lt;br /&gt;
&lt;br /&gt;
=== Компоненты Gambas ===&lt;br /&gt;
Немного [[LXF71:Gambas|раньше, в LXF71]], вы видели, как полезны могут быть компоненты Gambas, и как легко с их помощью получить доступ к базе данных. Я хочу напомнить, что для использования компонентов вы должны&lt;br /&gt;
для начала подключить их, открыв окно Project Properties (в окне&lt;br /&gt;
проекта щелкните на слове Project, за которым идёт Properties), и&lt;br /&gt;
перейдя на вкладку Components. Вы увидите список всех компонентов,&lt;br /&gt;
доступных для вас. Чтобы увидеть, как полезны они могут быть, давайте напишем свой собственный web-браузер! Отметьте компонент gb.qt.kde.html. К огда вы вернётесь обратно, то в панели инструментов&lt;br /&gt;
обнаружите новую вкладку KDE. Щ елкнув по ней, вы увидите новые&lt;br /&gt;
объекты, которые теперь можно использовать на любой форме.&lt;br /&gt;
&lt;br /&gt;
Создайте новую форму (с названием frmWebBrowser) и добавьте&lt;br /&gt;
на нее поле ввода (txtUrl), кнопку (btnGo) и объект web-браузер&lt;br /&gt;
(webBrowser). Вам так же понадобится создать или кнопку [Close],&lt;br /&gt;
или пункт меню для закрытия формы. К ак только закончите, напишите&lt;br /&gt;
следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB btnGo_Click()&lt;br /&gt;
IF (txtUrl.text) THEN&lt;br /&gt;
webBrowser.Path = “http://” &amp;amp; txtUrl.Text&lt;br /&gt;
END IF&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Если вы запустите получившееся приложение, то увидите, что&lt;br /&gt;
создали работающий (хотя и очень простой) интернет-браузер.&lt;br /&gt;
&lt;br /&gt;
Мы можем расширить его функциональность с помощью других&lt;br /&gt;
компонентов Gambas. Включите gb.net (компонент для работы с сетью)&lt;br /&gt;
и добавьте текстовую метку txtIP на форму. К огда закончите, перепишите ваш код, чтобы он выглядел примерно так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PRIVATE dns AS DnsClient&lt;br /&gt;
PUBLIC SUB btnGo_Click()&lt;br /&gt;
IF (txtUrl.text) THEN&lt;br /&gt;
webBrowser.Path = “http://” &amp;amp; txtUrl.Text&lt;br /&gt;
END IF&lt;br /&gt;
txtIp.Text=””&lt;br /&gt;
dns.HostName = txtUrl.text&lt;br /&gt;
dns.GetHostIP&lt;br /&gt;
txtIp.Text = dns.HostIP&lt;br /&gt;
END&lt;br /&gt;
PUBLIC SUB Form_Open()&lt;br /&gt;
dns = NEW DnsClient&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Запустив приложение на этот раз, вы увидите что кроме web-сайта&lt;br /&gt;
отображается его IP-адрес. Очень важно, что вам не надо знать, каким&lt;br /&gt;
образом работает тот или иной компонент. достаточно уметь использовать его.&lt;br /&gt;
&lt;br /&gt;
=== сделаем web-браузер богаче ===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Подсказки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* Нажатие кнопки F4 открывает окно свойств. F5 запускает приложение. F6 отображает панель инструментов Gambas.&lt;br /&gt;
* если вы не помните точно, какие события можно обработать в Gambas, щелкните правой кнопкой на объекте и выберите пункт меню Events. Вы получите список событий, для которых можно написать обработчики.&lt;br /&gt;
* Спрятать текст в поле ввода можно, если установить свойство Password равным True.&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
Мы управились с созданием простого web-браузера, но цена ему –&lt;br /&gt;
грош. Он стал чуть-чуть интереснее после добавления IP-адреса сервера, на котором находится та или иная страница. а теперь мы можем&lt;br /&gt;
сделать простой редактор HTML. его принцип работы будет немного&lt;br /&gt;
отличаться от работы браузера – вместо простого просмотра страницы&lt;br /&gt;
мы скачаем её, просмотрим и отредактируем текст, а потом загрузим&lt;br /&gt;
обратно на сервер. конечно, мы используем компоненты Gambas, чтобы&lt;br /&gt;
они сделали за нас всю грязную работу.&lt;br /&gt;
&lt;br /&gt;
Создайте новую форму (я назвал её frmHtmlEditor) и сделайте её&lt;br /&gt;
запускаемым классом или измените ваш модуль, чтобы он открывал&lt;br /&gt;
именно её. Не забудьте добавить кнопку или меню для закрытия формы.&lt;br /&gt;
Поскольку мы собираемся делать три совершенно разные вещи, давайте добавим из панели инструментов область вкладок (tab strip) и&lt;br /&gt;
назовём её tbsEditor, чтобы явно разделить три различных операции.&lt;br /&gt;
Вы увидите, что по умолчанию присутствует только одна вкладка&lt;br /&gt;
(Tab 0), используйте окно свойств, чтобы это исправить (измените параметр count). а теперь щелкните на каждой вкладке по отдельности, чтобы изменить их заголовки на что-то полезное (например, Viewer, Editor&lt;br /&gt;
и Upload).&lt;br /&gt;
&lt;br /&gt;
Вкладка Viewer очень похожа на web-браузер, который мы уже&lt;br /&gt;
делали, но код слегка отличается. Создайте объекты txtUrl, btnGo и&lt;br /&gt;
webBrowser (не забудьте подключить компонент gb.qt.kde.html).&lt;br /&gt;
кроме того, вам понадобится компонент gb.net.curl, чтобы пользоваться протоколами HTTP и FTP. код для просмотра страницы таков:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PRIVATE http AS HttpClient&lt;br /&gt;
PRIVATE htmlfile AS String&lt;br /&gt;
PUBLIC SUB btnGo_Click()&lt;br /&gt;
http.URL = “http://” &amp;amp; txtUrl.Text&lt;br /&gt;
http.Get(htmlfile)&lt;br /&gt;
loadFile&lt;br /&gt;
END&lt;br /&gt;
PRIVATE SUB loadFile()&lt;br /&gt;
webBrowser.Path = “file:///” &amp;amp; htmlfile&lt;br /&gt;
END&lt;br /&gt;
PUBLIC SUB Form_Open()&lt;br /&gt;
http = NEW HttpClient&lt;br /&gt;
htmlfile = “/tmp/test.html”&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Обратите внимание, мы сначала скачиваем страницу и только потом&lt;br /&gt;
отдаём ей браузеру для отображения.&lt;br /&gt;
&lt;br /&gt;
На вкладке Editor создайте многострочное поле ввода txtHtml и&lt;br /&gt;
кнопку btnSave. Затем добавьте следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB tbsEditor_Click()&lt;br /&gt;
SELECT CASE tbsEditor.Text&lt;br /&gt;
CASE “Viewer”&lt;br /&gt;
loadFile&lt;br /&gt;
CASE “Editor”&lt;br /&gt;
txtHtml.Text = File.Load(htmlfile)&lt;br /&gt;
END SELECT&lt;br /&gt;
END&lt;br /&gt;
PUBLIC SUB btnSave_Click()&lt;br /&gt;
file.Save(htmlfile,txtHtml.text)&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Нам осталось модифицировать вкладку Upload, добавив к ней три&lt;br /&gt;
поля ввода (txtTarget, txtUsername и txtPassword) и кнопку&lt;br /&gt;
btnUpload. Нам понадобится глобальный параметр&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;PRIVATE ftp AS FtpClient&amp;lt;/source&amp;gt;&lt;br /&gt;
и его инициализация в процедуре form_open:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;ftp = NEW FtpClient&amp;lt;/source&amp;gt;&lt;br /&gt;
В конце напишем процедуру для загрузки файла на сервер&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
PUBLIC SUB btnUpload_Click()&lt;br /&gt;
ftp.URL = txtTarget.Text&lt;br /&gt;
ftp.User = txtUsername.Text&lt;br /&gt;
ftp.Password = txtPassword.Text&lt;br /&gt;
ftp.Put(htmlfile)&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
конечно, это очень простой редактор, в нём нет никаких проверок&lt;br /&gt;
или подсветки синтаксиса. Вы также обнаружите, что это приложение&lt;br /&gt;
может загружать на сервер только один файл (подумайте об этом на&lt;br /&gt;
досуге). Однако оно является прекрасной демонстрацией того, как много и как быстро вы можете сделать, используя компоненты Gambas.&lt;/div&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	</feed>