<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6482727957786849560</id><updated>2012-02-04T18:50:41.681+04:00</updated><category term='flash'/><category term='хакинг'/><category term='sms'/><category term='as3'/><category term='vs2008'/><category term='api'/><category term='праздник'/><category term='Apple'/><category term='function'/><category term='torrent'/><category term='CLSID'/><category term='вирусы'/><category term='LCN'/><category term='c++'/><category term='ArtMoney'/><category term='безопасность'/><category term='орфография'/><category term='java'/><category term='Javascript'/><category term='GIF'/><category term='сочетания'/><category term='DLL'/><category term='struct'/><category term='головоломка'/><category term='autorun'/><category term='пуск'/><category term='глюк'/><category term='переменные'/><category term='схемотехника'/><category term='printf'/><category term='символы'/><category term='c'/><category term='реестр'/><category term='объяснение'/><category term='j2me'/><category term='Firefox'/><category term='iPhone'/><category term='iTunes'/><category term='лингвистика'/><category term='FSCTL'/><category term='алогритм'/><category term='навигация'/><category term='выполнить'/><category term='dev'/><category term='DropHandler'/><category term='lib'/><category term='widget'/><category term='vista'/><category term='MBR'/><category term='загадка'/><category term='ask'/><category term='Microsoft'/><category term='Kalyway'/><category term='дизайн'/><category term='qlineedit'/><category term='cout'/><category term='Explorer'/><category term='vkontakte'/><category term='Хакинтош'/><category term='hosts'/><category term='настройки'/><category term='инкремент'/><category term='оптимизация'/><category term='template'/><category term='хирагана'/><category term='библиотека'/><category term='скрипт'/><category term='браузер'/><category term='изучение'/><category term='trolltech'/><category term='день рождения'/><category term='nokia'/><category term='mutex'/><category term='облако'/><category term='Mozilla'/><category term='триггер'/><category term='VCN'/><category term='windows'/><category term='постфикс'/><category term='система счисления'/><category term='hack'/><category term='сжатие'/><category term='моддинг'/><category term='process'/><category term='ресурсы'/><category term='Xilinx'/><category term='MAC OS X'/><category term='pdu'/><category term='защита'/><category term='шрифты'/><category term='префикс'/><category term='права'/><category term='thread'/><category term='question'/><category term='null'/><category term='перебор'/><category term='файл'/><category term='выборка'/><category term='словолом'/><category term='trick'/><category term='log'/><category term='Update'/><category term='формат'/><category term='std'/><category term='софт'/><category term='qt'/><category term='cpp'/><category term='логика'/><category term='программирование'/><category term='массив'/><category term='японский'/><category term='ссылки'/><category term='m4r'/><title type='text'>[k06a]'s Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>53</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3705964846212365467</id><published>2011-05-15T22:48:00.000+04:00</published><updated>2011-05-15T22:48:09.931+04:00</updated><title type='text'>Битовый итератор</title><content type='html'>Новый вариант подсчёта числа установленных битов в файле: &lt;a href="http://codepad.org/Bpm179Gv"&gt;http://codepad.org/Bpm179Gv&lt;/a&gt;&lt;br /&gt;Да, это битовый итератор))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3705964846212365467?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3705964846212365467/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3705964846212365467' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3705964846212365467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3705964846212365467'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2011/05/blog-post.html' title='Битовый итератор'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-953497189002729544</id><published>2011-03-19T23:17:00.001+03:00</published><updated>2011-03-20T04:21:24.059+03:00</updated><title type='text'>Oтладка сердца</title><content type='html'>Далее написаны мысли о том из чего у меня складывается, программирование.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;div align="justify" style="text-indent: 40px;"&gt;Для начала я придумываю цель, то - что за приложение должно быть в конце. Обдумываю, как бы всё замечательно работало. В уме обсасываю каждый поворот меню и нюанс работы программы. Ведь всё будет такое удобное и классное, что самому будет приятно с этим работать. А главное что программа будет очень нужная. Её смогут сразу без подготовки использовать все вокруг, начиная от меня самого и заканчивая моей бабушкой. На этом этапе неплохо бы сделать зарисовки графического интерфейса.&lt;/div&gt;&lt;div align="justify" style="text-indent: 40px;"&gt;На следующем этапе, я придумываю как приложение будет реализовано на определённом языке программирования и с использованием каких технологий и API. В голове формируются независимые кусочки подпрограммы, которые можно реализовать отдельно от остальных. Ведь всегда проще реализовать несвязные части и потом их сцепить, чем кодить огромного монстра. Все части я так и не могу вычленить на данном этапе и ограничиваюсь лишь первыми и самыми необходимыми. Это скорее всего не графика а само сердце программы - то что в ней работает.&lt;/div&gt;&lt;div align="justify" style="text-indent: 40px;"&gt;Теперь можно переходить к фазе кодирования. Я кодирую те небольшие кусочки и отлаживаю их. В идеале к каждому кусочку пишу тесты. Некоторые кусочки отлаживаются очень долго. Парочка кусочков превращаются в довольно сложный и запутанный кусок кода. В этом случае необходимо вернуться на предыдущий шаг и перепланировать эту часть программы: разбить на более мелкие кусочки или иным способом преодолеть нарастающую сложность кода. После недолгой отладки я получаю стучащее сердце. Проверяю все необходимые характеристики: частоту стука, громкость удара, частотную составляющую и т.д.&lt;/div&gt;&lt;div align="justify" style="text-indent: 40px;"&gt;После того как сердце программы уверенно застучало, можно начинать обвес всякими штучками. Прилепить графику, облагородить конфигурационные файлы, учесть параметры запуска из командной строки. Иными словами сделать программу доступной для работы не только программистам, но и домохозяйкам. На этом этапе глобальных проблем не предвидится, ведь сердце программы уже стучит. Код который обеспечивает корректную работу сердца не должен меняться на этом этапе.&lt;/div&gt;&lt;br /&gt;Вот теперь программа готова. Осталось её отшлифовать и браться за следующую . . .&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-953497189002729544?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/953497189002729544/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=953497189002729544' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/953497189002729544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/953497189002729544'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2011/03/o.html' title='Oтладка сердца'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-8817094698719237290</id><published>2010-11-02T23:43:00.003+03:00</published><updated>2010-11-09T22:58:52.834+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='question'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><category scheme='http://www.blogger.com/atom/ns#' term='ask'/><title type='text'>Try to f(f(n)) == -n</title><content type='html'>Увидел недавно интересный вопрос.&lt;br /&gt;Написать такую функцию f, что: &lt;b&gt;f(f(n)) == -n&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;У кого какие идеи?&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;Вот самый простой вариант на мой взгляд (правда это не совсем функция):&lt;br /&gt;&lt;pre&gt;&lt;code&gt;#define f(n) 0-n&lt;/code&gt;&lt;/pre&gt;Ну а вот посложнее (правда тут получается 2 функции с одним именем):&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;span class="sch_cpp_sc16"&gt;template&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;typename&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;struct&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;param&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;param&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;t&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;t&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;};&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;template&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;typename&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;param&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;f&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;a&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;^(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)));&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;^=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;a&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;?&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0xAA&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0x55&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;param&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;template&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;typename&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;f&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;param&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;f&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;).&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;n&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;+&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;(ссылка - &lt;a href="http://codepad.org/TK0GhhAe"&gt;http://codepad.org/TK0GhhAe&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Этот код пока работает только для &lt;i&gt;char&lt;/i&gt;.&lt;br /&gt;Так было намного быстрее прогонять полный тест))&lt;br /&gt;Нетрудно модифицировать его для остальных типов.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-8817094698719237290?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/8817094698719237290/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=8817094698719237290' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8817094698719237290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8817094698719237290'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/11/try-to-ffn-n.html' title='Try to f(f(n)) == -n'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-6166276103689814928</id><published>2010-11-02T22:38:00.003+03:00</published><updated>2010-11-09T22:59:12.349+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vs2008'/><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='printf'/><category scheme='http://www.blogger.com/atom/ns#' term='struct'/><title type='text'>Printf структуры?</title><content type='html'>Угадайте с трёх раз, что выведет следующий код, скомпилированный VS2008?&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;span class="sch_cpp_sc16"&gt;struct&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;A&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;a&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;b&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;c&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;};&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;A&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;a&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;10&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;20&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;30&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;};&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;printf&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"%d %d %d\n"&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;a&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span class=fullpost&gt;&lt;br /&gt;Да, именно то самое: "10 20 30".&lt;br /&gt;И вообще нет никакой проверки типов,&lt;br /&gt;а следовательно и неявного кастования.&lt;br /&gt;Кто, что думает по этому поводу?&lt;br /&gt;&lt;br /&gt;Вот что думают на StackOverflow: &lt;a href="http://stackoverflow.com/questions/4081491/printf-for-struct-c-c-vc2008"&gt;http://stackoverflow.com/questions/4081491&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-6166276103689814928?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/6166276103689814928/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=6166276103689814928' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/6166276103689814928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/6166276103689814928'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/11/printf.html' title='Printf структуры?'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-1921310691335258557</id><published>2010-10-24T19:51:00.000+04:00</published><updated>2010-10-24T19:51:23.203+04:00</updated><title type='text'>Создал новый проект на Google Code - boolib</title><content type='html'>Наконец-то добрались руки создать проект персональной C++ библиотеки. Буду туда закидывать все решения, которые можно будет многократно использовать. Классы, шаблоны и всё что получится.&lt;br /&gt;&lt;br /&gt;&lt;span class=fullpost&gt;Для начала создал инструмент &lt;b&gt;&lt;a href="http://code.google.com/p/boolib/source/browse/sync/synchronize.h"&gt;synchronize(id)&lt;/a&gt;&lt;/b&gt; для синхронизации потоков в стиле Java. В защищённый блок с одним идентификатором одновременно сможет попасть лишь один поток. Использовать так:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code class="cpp"&gt;&lt;br /&gt;&lt;span class="sch_cpp_sc2"&gt;// ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;synchronize&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;153&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// защищённый код&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Сегодня узнал, что POSIX Threads под Windows нужно скачивать ОТДЕЛЬНО!&lt;br /&gt;Почему его нет в Visual Studio по-умолчанию? Это же POSIX!&lt;br /&gt;В общем, &lt;b&gt;synchronize(id)&lt;/b&gt; работает только под Windows (использует Mutex-ы).&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-1921310691335258557?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/1921310691335258557/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=1921310691335258557' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1921310691335258557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1921310691335258557'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/10/google-code-boolib.html' title='Создал новый проект на Google Code - boolib'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3103393463996884297</id><published>2010-10-19T18:14:00.000+04:00</published><updated>2010-10-19T18:18:04.119+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><title type='text'>6 последовательных проблем программиста</title><content type='html'>6 последовательных проблем программиста:&lt;br /&gt;1) Как бы написать, чтобы скомпилировалось?&lt;br /&gt;2) Как бы написать, чтобы работало как задумано?&lt;br /&gt;3) Как бы написать, чтобы работало быстрее?&lt;br /&gt;4) Как бы быстрее написать?&lt;br /&gt;5) Как бы написать, чтобы было красиво?&lt;br /&gt;6) Как бы написать, чтобы было гибко и повторно-используемо?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3103393463996884297?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3103393463996884297/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3103393463996884297' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3103393463996884297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3103393463996884297'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/10/6.html' title='6 последовательных проблем программиста'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-6568095199433885066</id><published>2010-08-20T08:55:00.006+04:00</published><updated>2010-08-20T09:45:26.647+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='null'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><title type='text'>Исповедь нулевого указателя (Apology of the NULL pointer)</title><content type='html'>Перевод статьи &lt;a href="http://labs.trolltech.com/blogs/2010/08/11/apology-of-the-null-pointer/"&gt;&lt;u&gt;Apology of the NULL pointer&lt;/u&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div align="justify" style="text-indent: 40px;"&gt;"Никто не любит меня. Меня презирали везде, где я побывал. Меня обвиняют в большинстве проблем, а иногда даже в некоторых катастрофах. Некоторые говорят, что я проклят. Некоторые утверждают, что я какая-то болезнь, которую необходимо вылечить. Когда люди видят меня, первая их мысль: "О нет, только не это ...". Ни у кого не найдется доброго слова для меня. Люди готовы тратить часы за часами, чтобы убедиться в том, что меня нет поблизости. Они проводят невероятно много времени выискивая пути, для обхода меня, чтобы раздавить меня, и убедиться в том, что я не могу даже приблизиться к ним. Дальше только хуже, некоторым людям удалось сделать меня невидимым для своих глаз, так что даже если я появляюсь они не видят меня. Если мне удастся приблизиться и сказать "привет", люди не отвечают "привет" мне. Когда я что-либо говорю, люди смотрят на меня с отвращением. Люди издавна считают, что я самое худшее, что может случиться с их программным обеспечением.&lt;/div&gt;&lt;div align="justify" style='text-indent: 40px;'&gt;Они просто не понимают меня. На самом деле я думаю, что меня вообще НИКТО не понимает. Но это нормально, потому что не важно буду ли я рядом, когда вы выпускаете ваше программное обеспечение. Я все равно буду рядом, когда ваше программное обеспечение устареет. В действительности, вы можете рассчитывать на то что я рядом всё время. И все же я не преследую вас. Если вы только остановитесь на некоторое время и выслушаете мои слова, вы увидите, что я могу стать вашим лучшим другом. Моя задача очень проста: если я появляюсь в вашем программном обеспечении, это не является признаком того, что ваше программное обеспечение плохо спланировано, я лишь указываю на аспекты не рассмотренные ранее. Если бы вы только поняли, что иногда лучше, чтобы я пришел и сказал вам "привет", чем вы бы хлопнули дверью перед моим лицом. Вы бы поняли, что мы можем работать вместе, чтобы сделать ваше программное обеспечение лучшим когда-либо существовавшим программным обеспечением. Так что, пожалуйста, прекратите проклинать меня и на этот раз постарайтесь прислушаться к моему посланию."&lt;/div&gt;&lt;br /&gt;На текст выше был я вдохновлен разговором с коллегами о том, в каких случаях следует выявлять нулевые указатели, а в каких просто позволить программе упасть.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.trolltech.com/blogs/2010/08/11/apology-of-the-null-pointer/"&gt;&lt;u&gt;Оригинал статьи&lt;/u&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-6568095199433885066?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/6568095199433885066/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=6568095199433885066' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/6568095199433885066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/6568095199433885066'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/08/apology-of-null-pointer.html' title='Исповедь нулевого указателя (Apology of the NULL pointer)'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5274282399452223070</id><published>2010-07-09T14:48:00.002+04:00</published><updated>2010-07-09T14:53:26.765+04:00</updated><title type='text'>Задачки</title><content type='html'>Написал более или менее внятные объяснения задачек на квизфуле:&lt;br /&gt;1) Задачка про поиск уникального значения (&lt;a href="http://www.quizful.net/interview/problems/find-unique-number"&gt;ссылка&lt;/a&gt;) (&lt;a href="http://www.peeep.us/6608d67b"&gt;копия&lt;/a&gt;)&lt;br /&gt;2) Задачка про сумму и произведение чисел (&lt;a href="http://www.quizful.net/interview/problems/sage-secret"&gt;ссылка&lt;/a&gt;) (&lt;a href="http://www.peeep.us/437cad90"&gt;копия&lt;/a&gt;)&lt;br /&gt;&lt;span class=fullpost&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5274282399452223070?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5274282399452223070/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5274282399452223070' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5274282399452223070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5274282399452223070'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/07/blog-post_09.html' title='Задачки'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3951918484056887460</id><published>2010-07-04T14:50:00.011+04:00</published><updated>2010-07-06T20:58:25.864+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='log'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>Шаблонная реализация перевода числа в строку</title><content type='html'>Шаблонная реализация функции перевода числа в строку.&lt;br /&gt;Практического толку не очень много, зато разобрался в шаблонах получше.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;Логарифм произвольного основания:&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 495px; height: 285px;" src="http://4.bp.blogspot.com/_sKX69jB94Rc/TDBn4cckCYI/AAAAAAAAE7Y/TAYWeYGYfvg/s1600/LogN.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5490002165170964866" /&gt;&lt;br /&gt;&lt;br /&gt;Сам перевод в строку:&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 600px; height: 580px;" src="http://3.bp.blogspot.com/_sKX69jB94Rc/TDBoYdh_8nI/AAAAAAAAE7g/KTMoz6J4tYU/s1600/intToBase.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5490002715218014834" /&gt;&lt;br /&gt;&lt;br /&gt;Вам предлагается найти ошибки. Одна точно есть и допущена специально.&lt;br /&gt;&lt;br /&gt;Вот исходный код: &lt;a href="http://codepad.org/YeanrJjQ"&gt;&lt;u&gt;http://codepad.org/YeanrJjQ&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPD:&lt;/b&gt;&lt;br /&gt;Чуток изменил код, ошибку исправил тоже.&lt;br /&gt;Теперь используется статическая память, вместо динамической.&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 600px; height: 597px;" src="http://4.bp.blogspot.com/_sKX69jB94Rc/TDNcYBmmnVI/AAAAAAAAE7o/37UaL5MdVxE/s1600/mait_template.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5490833938511732050" /&gt;&lt;br /&gt;&lt;br /&gt;Теперь посмотри как Visual Studio 2008 разберётся с этим:&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 351px; height: 80px;" src="http://4.bp.blogspot.com/_sKX69jB94Rc/TDNcoZeRHVI/AAAAAAAAE7w/N_nBy6Q0kgY/s1600/main_cpp.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5490834219797126482" /&gt;&lt;br /&gt;&lt;br /&gt;Вот что у нас получилось:&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 600px; height: 153px;" src="http://3.bp.blogspot.com/_sKX69jB94Rc/TDNczT6gGuI/AAAAAAAAE74/JruEkOrL9ZI/s1600/main_asm.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5490834407283497698" /&gt;&lt;br /&gt;&lt;br /&gt;Видно как в статическую память записываются 3 цифры '7',&lt;br /&gt;'3', '1' и производится вызов функции печати на консоль.&lt;br /&gt;&lt;br /&gt;Код для Visual Studio тут - &lt;a href="http://codepad.org/Z4rplbF7"&gt;&lt;u&gt;http://codepad.org/Z4rplbF7&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;Для других компиляторов следует закомментить лэйблы со смайлами)))&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3951918484056887460?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3951918484056887460/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3951918484056887460' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3951918484056887460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3951918484056887460'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/07/blog-post.html' title='Шаблонная реализация перевода числа в строку'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_sKX69jB94Rc/TDBn4cckCYI/AAAAAAAAE7Y/TAYWeYGYfvg/s72-c/LogN.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-65384756379543847</id><published>2010-04-04T19:13:00.007+04:00</published><updated>2010-04-26T22:43:31.070+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ссылки'/><category scheme='http://www.blogger.com/atom/ns#' term='ресурсы'/><title type='text'>Делюсь ресурсами</title><content type='html'>1. &lt;a href="http://www.cheat-sheets.org/"&gt;&lt;u&gt;Cheat-Sheets.org&lt;/u&gt;&lt;/a&gt; - Замечательный сайт IT шпаргалок. Содержит шпоры по огромному числу языков программирования, технологий и прочему.&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://www.wotsit.org/"&gt;&lt;u&gt;Wotsit.org&lt;/u&gt;&lt;/a&gt; - Сайт с множеством описаний различных форматов файлов. Частенько использую для получения неофициальной информации по форматам.&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://www.koders.com/"&gt;&lt;u&gt;Koders.com&lt;/u&gt;&lt;/a&gt; - База данных исходных кодов на разных языках. Указаны типы лицензий.&lt;br /&gt;&lt;br /&gt;Продолжение следует . . .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-65384756379543847?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/65384756379543847/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=65384756379543847' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/65384756379543847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/65384756379543847'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/04/blog-post_04.html' title='Делюсь ресурсами'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-4081457890835236918</id><published>2010-04-04T00:35:00.004+04:00</published><updated>2010-04-04T00:49:33.560+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='инкремент'/><category scheme='http://www.blogger.com/atom/ns#' term='объяснение'/><category scheme='http://www.blogger.com/atom/ns#' term='постфикс'/><category scheme='http://www.blogger.com/atom/ns#' term='префикс'/><title type='text'>Почему пишут ++i вместо i++. Простейшее объяснение.</title><content type='html'>Наиболее простое описание, почему иногда лучше использовать ++i нежели i++. Я просто приведу пример с перегрузкой префиксного(++i) и постфиксного(i++) операторов в неком классе &lt;i&gt;Alpha&lt;/i&gt;.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;class Alpha&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;   Aplha &amp; operator++ ();    // префиксная форма  (++alpha)&lt;br /&gt;   Alpha   operator++ (int); // постфиксная форма (alpha++)&lt;br /&gt;};&lt;/pre&gt;&lt;/code&gt;Отличие сразу бросается в глаза. Теперь, если вы знаете что такое &lt;b&gt;&amp;&lt;/b&gt;, то вам понятно какой из операторов быстрее отработает в случае большого &lt;i&gt;sizeof(Aplha)&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Но наиболее важной частью сего поста я считаю данную ссылку:&lt;br /&gt;1. C++ FAQ Lite: &lt;a href="http://www.parashift.com/c++-faq-lite/index.html"&gt;C++ FAQ Lite&lt;/a&gt;&lt;br /&gt;2. Конкретно про i++ и ++i: &lt;a href="http://www.parashift.com/c++-faq-lite/operator-overloading.html#faq-13.14"&gt;C++ FAQ Lite 13.14&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-4081457890835236918?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/4081457890835236918/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=4081457890835236918' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4081457890835236918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4081457890835236918'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/04/i-i.html' title='Почему пишут ++i вместо i++. Простейшее объяснение.'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-8174746919602604545</id><published>2010-04-03T00:40:00.011+04:00</published><updated>2010-09-13T00:30:16.626+04:00</updated><title type='text'>Top 25 программистских шуток про Чака Норриса</title><content type='html'>&lt;p style="font-size:12pt"&gt;Перевод сообщения "The Ultimate Top 25 Chuck Norris «The Programmer» Jokes" из блога &lt;a href="http://www.codesqueeze.com/the-ultimate-top-25-chuck-norris-the-programmer-jokes/"&gt;{сodesqueeze}&lt;/a&gt; (&lt;a href="http://www.peeep.us/2ffe700c"&gt;копия&lt;/a&gt;):&lt;/p&gt;&lt;span class=fullpost style="font-size: 12pt;"&gt;1. Когда Чак Норрис выбрасывает исключение, оно пролетает через всю комнату.&lt;br /&gt;&lt;br /&gt;2. Все массивы, объявляемые Чаком Норрисом имеют бесконечный размер, потому что Чак Норрис не знает границ.&lt;br /&gt;&lt;br /&gt;3. Для Чака Норриса не существует задержки диска, потому что диск чертовски торопится.&lt;br /&gt;&lt;br /&gt;4. Чак Норрис пишет код, который оптимизирует сам себя.&lt;br /&gt;&lt;br /&gt;5. Чак Норрис не может проверять на равенство, потому что он не имеет равных.&lt;br /&gt;&lt;br /&gt;6-а. Чаку Норрису не требуется сборщик мусора, потому что он не использует &lt;i&gt;.Dispose()&lt;/i&gt;, он вызывает &lt;i&gt;.DropKick()&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;6-б. Чаку Норрису не требуется сборщик мусора, потому что он не высвобождает память, а лупит по ней ногой с разворота.&lt;br /&gt;&lt;br /&gt;7. Первая программа Чака Норриса была &lt;b&gt;kill -9&lt;/b&gt;. (&lt;i&gt;Прим.пер.&lt;/i&gt; &lt;a href="http://www.openedge.ru/read/168/"&gt;описание kill -9&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;8. Чак Норрис лопнул пузырь доткомов. (&lt;i&gt;Прим.пер.&lt;/i&gt; &lt;a href="http://ru.wikipedia.org/wiki/Dotcom_bubble"&gt;Dotcom Bubble&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;9. Все браузеры поддерживают шестнадцатеричные константы #chuck и #norris для чёрного и голубого цветов.&lt;br /&gt;&lt;br /&gt;10. MySpace на самом деле не ваше пространство, оно Чака - он лишь позволяет вам использоваться им.&lt;br /&gt;&lt;br /&gt;11. Чак Норрис может написать бесконечную рекурсивную функцию ... и заставить её завершиться.&lt;br /&gt;&lt;br /&gt;12. Чак Норрис может решить Башни Ханоя в один ход.&lt;br /&gt;&lt;br /&gt;13. Единственный паттерн проектирования известный Чаку Норрису - Божественный объект. (&lt;i&gt;Прим.пер.&lt;/i&gt; &lt;a href="http://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82"&gt;God Object&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;14. Чак Норрис прошёл World of Warcraft.&lt;br /&gt;&lt;br /&gt;15. Руководители проекта, не пытайтесь оценивать Чака Норриса ... никогда.&lt;br /&gt;&lt;br /&gt;16. Чак Норрис не пишет в соответствии с веб-стандартами, так как веб всегда будет соответствовать ему.&lt;br /&gt;&lt;br /&gt;17. "Она работает на моей машине" всегда справедливо для Чака Норриса.&lt;br /&gt;&lt;br /&gt;18. "Маркерные доски" имеют белый цвет, потому что белеют от ужаса перед Чаком Норрисом. (&lt;i&gt;Прим.пер.&lt;/i&gt; &lt;a href="http://en.wikipedia.org/wiki/Whiteboard"&gt;Whiteboard&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;19. Чак Норрис не использует схем Burn Down, он предпочитает таблицы Smack Down. (&lt;i&gt;Прим.пер.&lt;/i&gt; &lt;a href="http://en.wikipedia.org/wiki/Burn_down_chart"&gt;Burn down chart&lt;/a&gt; + &lt;a href="http://ru.wikipedia.org/wiki/SmackDown!"&gt;Smack Down&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;20. Чак Норрис может удалить корзину.&lt;br /&gt;&lt;br /&gt;21. Борода Чака Норриса может печатать 140 символов в минуту.&lt;br /&gt;&lt;br /&gt;22. Чак Норрис может проводить модульное тестирование всего приложения с одним единственным assert-ом.&lt;br /&gt;&lt;br /&gt;23. Чак Норрис не ведёт охотиту за багами, потому что слово "охота" допускает возможность неудачи. Чак предпочитает убивать баги.&lt;br /&gt;&lt;br /&gt;24. Клавиатура Чака Норриса не имеет клавиши &lt;i&gt;Ctrl&lt;/i&gt;, потому что никто и ничто не контролирует Чака.&lt;br /&gt;&lt;br /&gt;25. Когда Чак Норрис занимается веб-серфингом веб-сайты отображают сообщение "&lt;i&gt;Предупреждение: Internet Explorer счел этого пользователя вредоносным или опасным. Вы действительно хотите продолжить?&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;Знаете другие? Комментируйте ...&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-8174746919602604545?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/8174746919602604545/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=8174746919602604545' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8174746919602604545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8174746919602604545'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/04/top-25.html' title='Top 25 программистских шуток про Чака Норриса'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-763048710581122073</id><published>2010-04-01T20:43:00.007+04:00</published><updated>2010-06-13T01:39:34.913+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='загадка'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='массив'/><title type='text'>Задачка про уникальность</title><content type='html'>1. Имеется массив чисел конечной длины. Все числа в нём присутствуют ровно в двух экземплярах. И лишь одно число присутствует в единственном экземпляре. Необходимо за минимальное(конечное) число проходов по массиву определить значение этого уникального числа.&lt;br /&gt;&lt;br /&gt;2. Решить ту же задачу, только теперь имеется два уникальных числа.&lt;br /&gt;&lt;br /&gt;(Задачку позаимствовал у Смола)&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;b&gt;UPD:&lt;/b&gt; Александр, на память ограничения не накладываются. Желательно использовать разумное количество памяти. Может получиться, например, прямая зависимость между используемой памятью и сложностью алгоритма(число операций), тогда это стоит отдельно обговорить в ответе.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPD_2:&lt;/b&gt; Для поиска одного из чисел используется операция XOR для всех элементов массива. В результате пары элементов дадут нули, а уникальное число останется в результате.&lt;br /&gt;&lt;br /&gt;Для поиска 2-х числе необходимо использовать следующий алгоритм:&lt;br /&gt;&lt;br /&gt;При первом проходе считать 2 различных XOR-а, в один складывать числа большие 0x80000000, а в другой - меньшие.&lt;br /&gt;&lt;br /&gt;Если обе XOR-суммы не равны нулю, то оба XOR-а равны соответствующим уникальным числам.&lt;br /&gt;&lt;br /&gt;Если один из XOR-ов равен нулю, то диапазон на котором XOR не равен нулю снова делится пополам.&lt;br /&gt;&lt;br /&gt;В результате число проходов пропорционально логарифму разрядности чисел, то есть O(log2(sizeof(n))).&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-763048710581122073?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/763048710581122073/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=763048710581122073' title='Комментарии: 17'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/763048710581122073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/763048710581122073'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/04/blog-post.html' title='Задачка про уникальность'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5663383085661705975</id><published>2010-03-11T21:58:00.010+03:00</published><updated>2010-04-03T03:06:48.005+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cout'/><category scheme='http://www.blogger.com/atom/ns#' term='process'/><category scheme='http://www.blogger.com/atom/ns#' term='std'/><category scheme='http://www.blogger.com/atom/ns#' term='thread'/><category scheme='http://www.blogger.com/atom/ns#' term='mutex'/><category scheme='http://www.blogger.com/atom/ns#' term='trick'/><title type='text'>Multithreaded std::cout.</title><content type='html'>Постоянно встречался с тем, что конструкция типа:&lt;br /&gt;&lt;pre style="font-size:10pt;"&gt;std::cout &amp;lt;&amp;lt; "123" &amp;lt;&amp;lt; a &amp;lt;&amp;lt; "456" &amp;lt;&amp;lt; b &amp;lt;&amp;lt; std::endl;&lt;/pre&gt;работает не очень хорошо из нескольких тредов(потоков) одновременно.&lt;br /&gt;Каждый такой оператор "&amp;lt;&amp;lt;" представляет из себя отдельный вызов функции и может вполне случиться, что выводимые данные из разных потоков перемешаются.&lt;br /&gt;&lt;br /&gt;Придумал небольшой трюк для устранения этой проблемы.&lt;br /&gt;Теперь вместо #include &amp;lt;iostream&amp;gt; подключаю свой #include "mt_iostream".&lt;br /&gt;&lt;br /&gt;&lt;span class=fullpost&gt;Содержимое &lt;b&gt;mt_iostream&lt;/b&gt;:&lt;br /&gt;&lt;code style='font-size:10pt;'&gt;&lt;pre&gt;&lt;span class="sch_cpp_sc9"&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;sstream&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;namespace&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;std&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;class&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;mt_ostream&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ostringstream&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;mt_ostream&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ostringstream&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;~&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;mt_ostream&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// namespace std&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc9"&gt;#define cout (static_cast&amp;lt;mt_ostream&amp;amp;&amp;gt;mt_ostream())&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;p align='right' style='font-size:7pt;'&gt;Подсветка синтаксиса выполнена при помощи &lt;a href="http://notepad-plus.sourceforge.net/"&gt;Notepad++&lt;/a&gt;&lt;/p&gt;&lt;hr size='1' noshade /&gt;&lt;br /&gt;&lt;br /&gt;И в качестве бонуса, небольшой trick для получения различных последовательностей &lt;i&gt;rand()&lt;/i&gt; в разных тредах (обычно они совпадают). В начале работы каждого из тредов вызывайте функцию &lt;i&gt;srand&lt;/i&gt;, передавая ей параметром текущее время. Это вы знали и без меня, это не помогает. Вот этот макрос поправит ситуацию:&lt;pre style="font-size:10pt;""&gt;#define srand(x) srand(x + GetCurrentThreadId())&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5663383085661705975?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5663383085661705975/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5663383085661705975' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5663383085661705975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5663383085661705975'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/03/multithreaded-stdcout.html' title='Multithreaded std::cout.'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3203262806465527252</id><published>2010-03-02T00:39:00.003+03:00</published><updated>2010-03-02T00:41:09.656+03:00</updated><title type='text'>Я — Финфи (iii.ru)</title><content type='html'>&lt;embed height="188" width="355" bgcolor="#ccddbb" name="vishnu" src="http://www.iii.ru/static/Vishnu.swf" wmode="window" flashvars="uuid=da14469d-70a0-4ab5-9ec3-3ba5e95f5899&amp;disableRuOverride=1&amp;skin_color=0xEBEBEB&amp;vertical_layout=0" type="application/x-shockwave-flash" quality="high" style=""&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3203262806465527252?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3203262806465527252/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3203262806465527252' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3203262806465527252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3203262806465527252'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/03/blog-post.html' title='Я — Финфи (iii.ru)'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-7669364564832002023</id><published>2010-02-22T23:46:00.011+03:00</published><updated>2010-02-23T00:10:01.736+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hosts'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='torrent'/><category scheme='http://www.blogger.com/atom/ns#' term='trick'/><title type='text'>torrents.ru =&gt; rutracker.org</title><content type='html'>&lt;table&gt;&lt;tr&gt;&lt;td align="center"&gt;&lt;img width="280" height="71" src="http://img715.imageshack.us/img715/6906/logomr.png" /&gt;&lt;/td&gt;&lt;td align="center"&gt; =&gt; &lt;/td&gt;&lt;td align="center"&gt;&lt;img width="280" height="57" src="http://img85.imageshack.us/img85/3434/logorto.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Прописал у себя в файле &lt;a href="http://saule.sporaw.ru/library/hosts.html"&gt;hosts&lt;/a&gt; (&lt;a href="http://www.peeep.us/cdb3437c"&gt;зеркало страницы&lt;/a&gt;):&lt;br /&gt;&lt;pre style="font-size:10pt;"&gt;195.82.146.114 torrents.ru&lt;br /&gt;195.82.146.120 bt.torrents.ru&lt;br /&gt;195.62.63.163  bt1.torrents.ru&lt;br /&gt;195.82.146.121 bt2.torrents.ru&lt;br /&gt;195.62.62.241  bt3.torrents.ru&lt;br /&gt;195.82.146.123 bt4.torrents.ru&lt;/pre&gt;Теперь живу как и раньше))&lt;br /&gt;&lt;br /&gt;Местоположение файла &lt;b&gt;hosts&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Windows 95/98/ME: WINDOWS\hosts&lt;br /&gt;Windows NT/2000: WINNT\system32\drivers\etc\hosts&lt;br /&gt;Windows XP/2003/Vista/7: WINDOWS\system32\drivers\etc\hosts&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-7669364564832002023?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/7669364564832002023/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=7669364564832002023' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7669364564832002023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7669364564832002023'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/02/torrentsru-rutrackerorg.html' title='torrents.ru =&gt; rutracker.org'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5854940526792011622</id><published>2010-02-20T17:09:00.018+03:00</published><updated>2010-05-12T00:08:06.425+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='формат'/><category scheme='http://www.blogger.com/atom/ns#' term='pdu'/><category scheme='http://www.blogger.com/atom/ns#' term='sms'/><category scheme='http://www.blogger.com/atom/ns#' term='lib'/><category scheme='http://www.blogger.com/atom/ns#' term='библиотека'/><title type='text'>Поговорим об SMS Protocol Data Unit</title><content type='html'>Решил поближе познакомиться с форматом SMS сообщений. Далее я напишу несколько закономерностей/законов, которые помогут мне написать достойную библиотеку c виртуозной архитектурой для работы с SMS PDU. Только учтя все особенности формата, возможно создать в меру сбалансированную библиотеку. Под балансировкой я понимаю выбор достаточного числа классов, структур, перечислений, способов взаимодействия компонентов между собой и интерфейса для использования библиотеки.&lt;br /&gt;&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;b&gt;В статье используются сокращения:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;SME&lt;/b&gt; - Short Message Entity (Модуль мобильного устройства)&lt;br /&gt;&lt;b&gt;SMSC&lt;/b&gt; - SMS-Centre (Центр обработки сообщений)&lt;br /&gt;&lt;b&gt;PDU&lt;/b&gt; - Protocol Data Unit (Протокольная единица данных)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;В первую очередь примечательно, что имеется 6 типов сообщений:&lt;/b&gt;&lt;br /&gt; &lt;b&gt;+&lt;/b&gt; SMS-SUBMIT&lt;br /&gt; &lt;b&gt;+&lt;/b&gt; SMS-SUBMIT-REPORT&lt;br /&gt; &lt;b&gt;+&lt;/b&gt; SMS-DELIVER&lt;br /&gt; &lt;b&gt;+&lt;/b&gt; SMS-DELIVER-REPORT&lt;br /&gt; &lt;b&gt;+&lt;/b&gt; SMS-STATUS-REPORT&lt;br /&gt; &lt;b&gt;+&lt;/b&gt; SMS-COMMAND (посылка специальных команд от SME к SMSC)&lt;br /&gt;&lt;br /&gt;Использование первых пяти типов поясняет эта схема:&lt;br /&gt;&lt;img width="600" height="177" src="http://img521.imageshack.us/img521/2294/43107764.png" alt="SMS PDU Types" /&gt;&lt;br /&gt;&lt;br /&gt;Тип сообщения хранится в 2-х битах первого байта. Неправда ли, маловато 2-х битов для хранения 6 возможных значений? Конечно мало, но если вы знаете кто это сообщение сгенерировал, то вам остаётся прочитать из 2-х бит всего 3 возможных значения.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Типы сообщений от SME:&lt;/b&gt;&lt;br /&gt; ( 0 1 ) SMS-SUBMIT&lt;br /&gt; ( 0 0 ) SMS-DELIVER-REPORT&lt;br /&gt; ( 1 0 ) SMS-COMMAND&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Типы сообщений от SMSC:&lt;/b&gt;&lt;br /&gt; ( 0 1 ) SMS-SUBMIT-REPORT&lt;br /&gt; ( 0 0 ) SMS-DELIVER&lt;br /&gt; ( 1 0 ) SMS-STATUS-REPORT&lt;br /&gt;&lt;br /&gt;Первый байт всегда содержит флаги/индикаторы. Все данные пакета измеряются в байтах, некоторые переменной длинны. То, какие флаги присутствуют в пакете - определяется типом сообщения. Присутствующие поля определяются типом пакета и флагами.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Принципы планируемой библиотеки:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;1)&lt;/b&gt; Каждому типу сообщения - свой класс, наследованный от базового. Каждый из них будет иметь свои флаги/индикаторы и обязательные поля. Некоторые флаги/индикаторы будут реализовываться отдельными классами, и будут иметь указатели на классы связанных с ними полей. Базовый класс будет уметь определять тип сообщения и создавать экземпляр соответствующего класса. &lt;font color="gray"&gt;[Напрашивается применение предыдущего поста про "кастование от родителя к наследнику"]&lt;/font&gt;&lt;br /&gt;&lt;b&gt;2)&lt;/b&gt; Классы храня данные только в самом PDU. (никаких промежуточных полей)&lt;br /&gt;&lt;b&gt;3)&lt;/b&gt; Каждое из полей наследуется от универсального класса "единицы данных". Имеет встроенные методы, по изменению размера и поля и перемещению данных в памяти. Обладает указателем на следующую "единицу данных", при изменении своего размера, заставляет двигаться следующую за ним "единицу данных".&lt;br /&gt;&lt;b&gt;4)&lt;/b&gt; [В разработке]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5854940526792011622?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5854940526792011622/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5854940526792011622' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5854940526792011622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5854940526792011622'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/02/sms-protocol-data-unit.html' title='Поговорим об SMS Protocol Data Unit'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3167181201965065852</id><published>2010-02-19T21:24:00.009+03:00</published><updated>2010-02-28T13:06:52.309+03:00</updated><title type='text'>Кастование от родителя к наследнику</title><content type='html'>&lt;div align='justify' style='text-indent: 40px;'&gt;Класс наследуется от некого базового класса-шаблона, передавая своё имя в качестве параметра шаблону. Базовый класс имеет метод, статически кастующий указатель на экземпляр конкретного класса к шаблонному типу. Таким образом возможно удобное статическое кастование от родителя к наследнику. И как следсвие, вызов переопределённых в наследнике методов из базового класса без их виртуализации. (вольное описание приёма из библиотеки sl)&lt;/div&gt;&lt;br /&gt;&lt;span class=fullpost&gt;Приблизительный код:&lt;br /&gt;&lt;code style='font-size:10pt;'&gt;&lt;pre&gt;&lt;span class="sch_cpp_sc2"&gt;////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;template&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;typename&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;class&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SelferT&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetSelf&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;static_cast&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&amp;gt;(*&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;this&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetSelf&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;static_cast&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&amp;gt;(*&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;this&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;};&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;class&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RefCount&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;protected&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SelferT&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;T&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Конструктор копирования - увеличивает счётчик ссылок&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RefCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;IN&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RefCount&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;rhs&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;_refCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;rhs&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;_refCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// ...&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Оператор присваивания - увеличивает счётчик ссылок&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RefCount&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;operator&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;IN&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RefCounted&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;rhs&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// ...&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Деструктор - уменьшает счётчик ссылок&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;~&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RefCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// ...&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(*&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;_counter&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;==&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetSelt&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;().&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;OnDispose&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Вызывается, когда число ссылок становится равно нулю&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;void&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;OnDisposed&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;};&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;class&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;A&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RefCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;A&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// ...&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Вызывается, когда число ссылок становится равно нулю&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;void&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;OnDisposed&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;};&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;////////////////////////////////////////////////////////////////&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;p align='right' style='font-size:7pt;'&gt;Подсветка синтаксиса выполнена при помощи &lt;a href="http://notepad-plus.sourceforge.net/"&gt;Notepad++&lt;/a&gt;&lt;/p&gt;&lt;hr size='1' noshade /&gt;&lt;br /&gt;&lt;br /&gt;Если виртуализация методов класса позволяет добраться до &lt;b&gt;последнего&lt;/b&gt; наследника базового класса, то данный метод позволяет добраться до &lt;b&gt;конкретного&lt;/b&gt; наследника. С этим приёмом мы получили интерфейс в стиле Java, но без обязательного переопределения методов.&lt;br /&gt;&lt;br /&gt;Ссылка по теме:&lt;br /&gt;&lt;u&gt;&lt;a href="http://habrahabr.ru/blogs/delphi/85504/"&gt;Преобразование ссылки на интерфейс для реализации класса в Delphi 2010&lt;/a&gt;&lt;/u&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3167181201965065852?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3167181201965065852/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3167181201965065852' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3167181201965065852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3167181201965065852'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/02/blog-post_19.html' title='Кастование от родителя к наследнику'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5365196202620755660</id><published>2010-02-08T16:51:00.001+03:00</published><updated>2010-02-08T16:55:25.573+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='облако'/><category scheme='http://www.blogger.com/atom/ns#' term='навигация'/><category scheme='http://www.blogger.com/atom/ns#' term='дизайн'/><title type='text'>Прикрутил модное облачко</title><content type='html'>Взято отсюда: &lt;a href="http://www.bloggerbuster.com/2008/08/blogumus-flash-animated-label-cloud-for.html"&gt;Blogumus: a flash animated label cloud for Blogger!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5365196202620755660?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5365196202620755660/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5365196202620755660' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5365196202620755660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5365196202620755660'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/02/blog-post.html' title='Прикрутил модное облачко'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-862004093947874886</id><published>2010-01-04T23:16:00.006+03:00</published><updated>2010-01-12T00:02:58.706+03:00</updated><title type='text'>Прикрутил Spoiler</title><content type='html'>Прикрутил к блогу спойлер by Ruby Brewed (Denis Neverov &lt;a href="http://dotrb.blogspot.com"&gt;http://dotrb.blogspot.com&lt;/a&gt;)&lt;br /&gt;Он будет весьма востребован в готовящейся в данный момент статье.&lt;br /&gt;&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;div class="spoiler" title="Здесь краткое описание"&gt;&lt;br /&gt;А здесь текст, который хотим сделать скрытым&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-862004093947874886?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/862004093947874886/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=862004093947874886' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/862004093947874886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/862004093947874886'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2010/01/spoiler.html' title='Прикрутил Spoiler'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-1907324225933695104</id><published>2009-11-20T18:45:00.012+03:00</published><updated>2010-02-08T16:56:41.645+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='autorun'/><category scheme='http://www.blogger.com/atom/ns#' term='вирусы'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><category scheme='http://www.blogger.com/atom/ns#' term='trick'/><title type='text'>Прятки в файловой системе FAT</title><content type='html'>&lt;div align='justify' style='text-indent: 40px;'&gt;Отличный способ без особых заморочек спрятать данные на флешке. Получить доступ к данным сможет только тот, кто знает специальный ключ. Ключом будет являться имя вашего каталога. Никакой специализированный софт для доступа не потребуется. Файловые менеджеры ваш каталог не покажут и не отобразят его содержимое поиском. Заинтриговал? Также Вы получите защиту флешки от вирусов, прописывающихся в автозапуск (в файл autorun.inf).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class=fullpost&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;&lt;b&gt;1.&lt;/b&gt; Для начала проверьте, что ваша флешка действительно имеет файловую систему FAT (FAT32, FAT16, FAT12). Если флешка отформатирована под NTFS - есть возможно переконвертировать файловую систему в FAT без потери данных(используя Partition Magic). Единственное, вы больше не сможете на ней хранить файлы объемом более 2Гб.&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;&lt;b&gt;2.&lt;/b&gt; Создаем в корне флешки папку с именем "autorun.inf". Внутри папки autorun.inf создаем папку с секретным именем. Именно в ней и мы и будем прятать наши файлы, кто будет знать имя папки - тот и сможет в нее попасть. Вторичным эффектом будет защита флешки от самозапускающихся(прописывающихся в текстовый файл autorun.inf) вирусов. Убьем двух зайцев одним махом.&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;&lt;b&gt;3.&lt;/b&gt; Скачиваем и запускаем низкоуровневый редактор жесткого диска. Я предпочитаю утилиту нашего соотечественника Дмитрия Cидopoва &lt;a href="http://dmde.ru/"&gt;DM&amp;nbsp;Disk&amp;nbsp;Editor&lt;/a&gt;. Утилита сразу предлагает нам открыть диск. Отмечаем галочкой "Логические", а не "Физические" устройства и выбираем необходимый раздел(том) (рис. 1). И соглашаемся с диалогом автоопределения файловой системы (рис. 2).&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_sKX69jB94Rc/SwbB06jfEcI/AAAAAAAAEyI/Bqn48Lr-FPg/s1600/Select+Drive+256.png" alt="5.07Кб" /&gt;&lt;br /&gt;Рис. 1. Выбор раздела(тома) [5.07Кб]&lt;br /&gt;&lt;br /&gt;&lt;img alt="5.29Кб" src="http://1.bp.blogspot.com/_sKX69jB94Rc/SwbGAOQYQ6I/AAAAAAAAEyQ/0SEsbexYHVc/s1600/Select+Filesystem+256.png" /&gt;&lt;br /&gt;Рис. 2. Выбор файловой системы [5.29Кб]&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;&lt;b&gt;4.&lt;/b&gt; Теперь в низкоуровневом просмотрщике жесткого диска (он сейчас находится в режиме просмотра "Директория FAT" - рис. 3) найдем строку с именем папки "autorun.inf". Обратим внимание на атрибуты директории: "----D--". Буквы слева направо отвечают за 6 атрибутов файлов в файловой системе FAT:&lt;br /&gt;&lt;b&gt;R&lt;/b&gt; - Read only&lt;br /&gt;&lt;b&gt;H&lt;/b&gt; - Hidden&lt;br /&gt;&lt;b&gt;S&lt;/b&gt; - System&lt;br /&gt;&lt;b&gt;V&lt;/b&gt; - Volume&lt;br /&gt;&lt;b&gt;D&lt;/b&gt; - Dir&lt;br /&gt;&lt;b&gt;A&lt;/b&gt; - Archive&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="7.45Кб" src="http://4.bp.blogspot.com/_sKX69jB94Rc/SwbXVXvu5BI/AAAAAAAAEyg/k0Iv_3lJPhI/s1600/Find+autorun.inf+256.png" /&gt;&lt;br /&gt;Рис. 3. Найдем строку с файлом "autorun.inf" [7.45Кб]&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;&lt;b&gt;5.&lt;/b&gt; Внутри файловой системы атрибуты представлены битами внутри одного байта. Этот байт располагается сразу за 8-мью байтами имени и 3-мя байтами расширения файла. Атрибутов шесть, а битов в байте восемь. Значит два старших бита байта атрибутов не задействованы. Как показала практика, если хотя бы один из этих битов установлен, то с таким файловым объектом(файлом или папкой) ничего нельзя сделать стандартными средствами(большинством файловых браузеров). Такой файл нельзя ни открыть, ни удалить, ни переименовать. Предлагаю установить все биты в 1 кроме бита &lt;b&gt;Volume&lt;/b&gt;, номер 4. Нехорошо давать этот атрибут кому не лень)) Значение байта атрибутов будем выставлять 0xF7.&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;&lt;b&gt;6.&lt;/b&gt; В низкоуровневом просмотрщике устанавливаем курсор на строку с папкой "autorun.inf" (рис. 4). Переключаем вид: Вид-&gt;Шестнадцатиричный (F2). Смотрим на байт сразу за "AUTORUN&amp;nbspINF", он равен 0x10. Установлен только один бит, пятый(если нумеровать с единицы) - он означает &lt;b&gt;Dir&lt;/b&gt;. Нажимаем Правка-&gt;Режим редактирования (Ctrl+E). Ставим курсор на байт атрибутов и последовательно нажимаем клавиши F и 7 (рис. 5). Отлючаем режим редактирования так же как и включили его. И сохраняем изменения на диске: Правка-&gt;Записать изменения... (Ctrl+W). Закройте приложение DMDE.&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="7.50Кб" src="http://3.bp.blogspot.com/_sKX69jB94Rc/SwbYGh906cI/AAAAAAAAEyo/8sEllf0UVEk/s1600/Select+Byte+256.png" /&gt;&lt;br /&gt;Рис. 4. Найдем байт атрибутов [7.50Кб]&lt;br /&gt;&lt;br /&gt;&lt;img alt="7.54Кб" src="http://2.bp.blogspot.com/_sKX69jB94Rc/Swbczn6LtVI/AAAAAAAAEyw/szuXxmNWDd0/s1600/Edit+Byte+256.png" /&gt;&lt;br /&gt;Рис. 5. Исправили байт атрибутов [7.54Кб]&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;Результаты:&lt;/h3&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Зайдите в корень флешки проводником и попытайтесь сделать что-либо с папкой autorun.inf (открыть, удалить, переименовать). Не получается, не так ли? Этого мы и добивались. Также у вас (и у большинства вирусов) не получится создать текстовый файл с именем autorun.inf.&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Теперь чтобы зайти в свою секретную папку введите путь к ней в панели адреса. Например, F:\autorun.inf\secret_folder. Никому не говорите как называется ваша папка и большинство людей о ней даже не узнают.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-1907324225933695104?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/1907324225933695104/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=1907324225933695104' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1907324225933695104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1907324225933695104'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/11/fat.html' title='Прятки в файловой системе FAT'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_sKX69jB94Rc/SwbB06jfEcI/AAAAAAAAEyI/Bqn48Lr-FPg/s72-c/Select+Drive+256.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-9097577400817809978</id><published>2009-08-26T11:43:00.003+04:00</published><updated>2009-08-26T12:03:59.708+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='шрифты'/><category scheme='http://www.blogger.com/atom/ns#' term='символы'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><title type='text'>Шрифты для J2ME приложений . . .</title><content type='html'>Выложил четыре маленьких моноширинных шрифта DOS-866.&lt;br /&gt;Могут пригодиться для J2ME приложений (4x6, 6x9, 8x9, 8x12).&lt;br /&gt;Шрифты представляют собой прямоугольную таблицу 16 на 16 символов.&lt;br /&gt;Шрифты имеют лишь 2 цвета, максимально сжаты в PNG.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;p align="center"&gt;4x6&lt;br /&gt;&lt;img src="http://img299.imageshack.us/img299/7441/4x6.png"/&gt;&lt;br /&gt;&lt;br /&gt;6x9&lt;br /&gt;&lt;img src="http://img299.imageshack.us/img299/5981/6x9.png"/&gt;&lt;br /&gt;&lt;br /&gt;8x9&lt;br /&gt;&lt;img src="http://img521.imageshack.us/img521/543/8x9.png"/&gt;&lt;br /&gt;&lt;br /&gt;8x12&lt;br /&gt;&lt;img src="http://img8.imageshack.us/img8/4212/8x12.png"/&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-9097577400817809978?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/9097577400817809978/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=9097577400817809978' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/9097577400817809978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/9097577400817809978'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/08/j2me_26.html' title='Шрифты для J2ME приложений . . .'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-469480950141210316</id><published>2009-08-24T11:22:00.008+04:00</published><updated>2009-08-24T14:45:34.116+04:00</updated><title type='text'>J2ME вообще для людей?</title><content type='html'>&lt;div align='justify' style='text-indent: 40px;'&gt;Попробовал опять начать программировать под &lt;b&gt;J2ME&lt;/b&gt;. И столкнулся с прямо таки непреодолимыми проблемами. Тут и нехватка стандартных классов, и кривость виртуальной машины, и глюки эмулятора от SonyEricsson.&lt;/div&gt;&lt;br /&gt;&lt;span class=fullpost&gt;&lt;b&gt;1. Построчное чтение файла&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Каково же было моё удивление, когда я обнаружил, что ни один из стандартных классов ввода/вывода не позволяет построчно считывать и записывать файлы. Мне, например, удобно хранить списки карт/ресурсов/монстров в текстовом файле построчно. Что же делать? Помнится, пару лет назад писал функцию, считывающую текстовик целиком и делящую его на строки. На выходе получался массив String-ов. Да, знаю - я был извращенцем.&lt;/div&gt;&lt;br /&gt;Вот новый код:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;span class="sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_java_sc5"&gt;import&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;java&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;io&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;.*;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_java_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc16"&gt;class&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;InputStreamTextReader&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;extends&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;InputStreamReader&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc16"&gt;protected&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;InputStream&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;InputStreamTextReader&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;InputStream&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;super&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;      &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;InputStreamTextReader&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;InputStream&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;String&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;enc_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;throws&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;UnsupportedEncodingException&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;super&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;enc_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is_&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;      &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;String&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;readLine&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;throws&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;IOException&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;String&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc6"&gt;""&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;while&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_java_sc5"&gt;true&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_java_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;ch&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;is&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;read&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;switch&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;ch&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;case&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;-&lt;/span&gt;&lt;span class="sch_java_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;((&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;length&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;?&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;null&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;case&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc4"&gt;13&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;case&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc4"&gt;10&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;length&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;==&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc5"&gt;continue&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;+=&lt;/span&gt;&lt;span class="sch_java_sc0"&gt; &lt;/span&gt;&lt;span class="sch_java_sc11"&gt;String&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;valueOf&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;((&lt;/span&gt;&lt;span class="sch_java_sc16"&gt;char&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_java_sc11"&gt;ch&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_java_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_java_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_java_sc10"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;hr size='1' noshade /&gt;&lt;p align='right' style='font-size:7pt;'&gt;Подсветка синтаксиса выполнена при помощи &lt;a href="http://notepad-plus.sourceforge.net/"&gt;Notepad++&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;Кстати говоря, этот перл в InputStreamReader меня вообще убил:&lt;br /&gt;&lt;code&gt;private Reader in;&lt;/code&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Почему он не &lt;i&gt;protected&lt;/i&gt;? Как так можно? Что уже говорить о том что ни один и стандартных классов не работает с методами mark/reset. Чтобы вернуться в начало файла - нужно переоткрыть поток, а значит породить вопрос к пользователю. Или написать свой класс, буферизующий поток. Это бессмысленно! Как сделать нормальное чтение "больших" текстовиков?&lt;/div&gt;&lt;br /&gt;&lt;b&gt;2. Утечки памяти в элементах стандартного GUI&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Вот &lt;a href="http://otvety.google.ru/otvety/thread?tid=53ebfd08e0aba149"&gt;мой вопрос на Google ВиО&lt;/a&gt; по этому поводу. Там я исчерпывающе описал в чём я вижу проблему. Может это конечно эмулятор глючит, но сомневаюсь.&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Попробовал &lt;a href="http://lwuit.dev.java.net/"&gt;Lightweight User Interface Toolkit 1.2&lt;/a&gt; от Sun(хотя, теперь уже трудно сказать чья она) - те же яйца, только в профиль. Он конечно по моднее будет: лэйауты появлись и прочие прибамбасы . . . А с памятью всё также не аккуратен. Эх, жаль Qt для j2me не сделали. Кстати, Qt Jambi будет поддерживаться компанией Nokia лишь до мая 2010.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-469480950141210316?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/469480950141210316/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=469480950141210316' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/469480950141210316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/469480950141210316'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/08/j2me.html' title='J2ME вообще для людей?'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5919282279866425538</id><published>2009-07-07T01:03:00.008+04:00</published><updated>2009-07-10T23:14:01.446+04:00</updated><title type='text'>Structure Alignment Show</title><content type='html'>Вот пошаговое изменение памяти.&lt;br /&gt;Наблюдаем за выравниванием в структурах.&lt;br /&gt;&lt;pre style='font-face:Courier New; font-size:11pt;'&gt;struct abc&lt;br /&gt;{&lt;br /&gt;    unsigned char a;&lt;br /&gt;    unsigned char b;&lt;br /&gt;    unsigned int c;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;////////////////////////////////////////////////////////////&lt;br /&gt;//         Операторы           //  Память структуры &lt;b&gt;val&lt;/b&gt;   //&lt;br /&gt;////////////////////////////////////////////////////////////&lt;br /&gt;//                             // cc cc cc cc cc cc cc cc //&lt;br /&gt;// abc val = {0,0,0};          // &lt;b&gt;00&lt;/b&gt; &lt;b&gt;00&lt;/b&gt; cc cc &lt;b&gt;00 00 00 00&lt;/b&gt; //&lt;br /&gt;// val.a = 0xAA;               // &lt;b&gt;aa&lt;/b&gt; 00 cc cc 00 00 00 00 //&lt;br /&gt;// val.b = 0xBB;               // aa &lt;b&gt;bb&lt;/b&gt; cc cc 00 00 00 00 //&lt;br /&gt;// val.c = 0xCC;               // aa bb cc cc &lt;b&gt;cc&lt;/b&gt; 00 00 00 //&lt;br /&gt;// (int&amp;)val.b += 0x11 &lt;&lt; 24;  // aa bb cc cc &lt;b&gt;dd&lt;/b&gt; 00 00 00 //&lt;br /&gt;////////////////////////////////////////////////////////////&lt;br /&gt;// printf ("Output: %x %x %x", val.a, val.b, val.c);      //&lt;br /&gt;////////////////////////////////////////////////////////////&lt;br /&gt;// Output: aa bb dd&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5919282279866425538?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5919282279866425538/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5919282279866425538' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5919282279866425538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5919282279866425538'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/07/structure-alignment-show.html' title='Structure Alignment Show'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-915475136527314245</id><published>2009-07-03T16:42:00.066+04:00</published><updated>2009-08-15T12:29:03.450+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='перебор'/><category scheme='http://www.blogger.com/atom/ns#' term='словолом'/><category scheme='http://www.blogger.com/atom/ns#' term='алогритм'/><category scheme='http://www.blogger.com/atom/ns#' term='скрипт'/><title type='text'>Играли в slovolom.ru?</title><content type='html'>Играли ли вы в игру словолом? Если играли, тогда вы знете правила:&lt;br /&gt;нужно составить как можно больше слов из букв данного слова.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;p class='jspost' style='display:none'&gt;&lt;br /&gt;dict = new Array();&lt;br /&gt;&lt;br /&gt;parentFuncCounter = 28;&lt;br /&gt;function parentFunc()&lt;br /&gt;{&lt;br /&gt;   if (--parentFuncCounter) return;&lt;br /&gt;   document.getElementById('dbgline').innerHTML = "[ Словарь загружен успешно ]";&lt;br /&gt;   document.getElementById('editme').disabled = 0;&lt;br /&gt;   document.getElementById('editme').value = "";&lt;br /&gt;   document.getElementById('showMe').disabled = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function appendJS()&lt;br /&gt;{&lt;br /&gt;   document.getElementById('dbgline').innerHTML = "[ Загружаю словарь . . . ]";&lt;br /&gt;   document.getElementById('loadMe').disabled = 1;&lt;br /&gt;   var headID = document.getElementsByTagName("head")[0];         &lt;br /&gt;   var newScript = document.createElement('script');&lt;br /&gt;   newScript.type = 'text/javascript';&lt;br /&gt;   newScript.charset = "windows-1251";&lt;br /&gt;   newScript.src = 'http://sites.google.com/site/k06asite/Home/ojiga.txt';&lt;br /&gt;   headID.appendChild(newScript);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function isPodslovo(a,b)&lt;br /&gt;{&lt;br /&gt;   var c = new String(b);&lt;br /&gt;   for (var k=0; k!=a.length; k++)&lt;br /&gt;   {&lt;br /&gt;      t = c.indexOf(a[k]);&lt;br /&gt;      if (t == -1) return 0;&lt;br /&gt;      if (t == 0)&lt;br /&gt;         c = c.substr(1);&lt;br /&gt;      else&lt;br /&gt;         c = c.substr(0,t) + c.substr(t+1);&lt;br /&gt;   }&lt;br /&gt;   return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function showTxt()&lt;br /&gt;{&lt;br /&gt;   var word = document.getElementById('editme').value.toLowerCase();&lt;br /&gt;   if (word == "") return;&lt;br /&gt;&lt;br /&gt;   document.getElementById('dbgline').innerHTML = "[ Начал поиск по словарю . . . ]";&lt;br /&gt;   document.getElementById('result').innerHTML = "";&lt;br /&gt;&lt;br /&gt;   var sum = 0;&lt;br /&gt;   for (var i=0; i!=dict.length; i++)&lt;br /&gt;   {&lt;br /&gt;      for (var j=0; j!=dict[i].length; j++)&lt;br /&gt;      {&lt;br /&gt;         if (isPodslovo(dict[i][j],word) == 1)&lt;br /&gt;         {&lt;br /&gt;            sum++;&lt;br /&gt;            /* if (sum &lt; 10) document.getElementById('result').innerHTML += "0";&lt;br /&gt;               if (sum &lt; 100) document.getElementById('result').innerHTML += "0";&lt;br /&gt;               if (sum &lt; 1000) document.getElementById('result').innerHTML += "0";&lt;br /&gt;            document.getElementById('result').innerHTML += sum + ". ";&lt;br /&gt;            */&lt;br /&gt;            document.getElementById('result').innerHTML += dict[i][j] + '\n';&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   document.getElementById('dbgline').innerHTML = "[ Всего найдено " + sum + " слов ]";&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;Придерживайтесь следующего алгоритма:&lt;br/&gt;&lt;br /&gt;1. &lt;input id='loadMe' name='loadMe' type='submit' value='Подгрузить' onclick='parseMyJS();appendJS();'/&gt;  словарь (1.90 Мб)&lt;br /&gt;2. Введите &lt;input id='editme' name='editme' type='input' value='Слово' disabled='1' /&gt;&lt;br /&gt;3. Нажмите &lt;input id='showMe' name='showMe' type='submit' value='Найти' disabled='1' onclick='showTxt()' /&gt; подслова&lt;br /&gt;Статус: &lt;span id='dbgline' name='dbgline' style='font-color:#808080;'&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;// Разрешите googlegroups.com у вашего NoScript или AdBlock . . .&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Найденные подслова:&lt;/b&gt;&lt;br /&gt;&lt;pre id='result' name='result' style='height:180px; width:240px; overflow:auto; font-size: 8pt;'&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-915475136527314245?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/915475136527314245/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=915475136527314245' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/915475136527314245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/915475136527314245'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/07/slovolomru.html' title='Играли в slovolom.ru?'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-643365208863832318</id><published>2009-06-29T00:35:00.016+04:00</published><updated>2009-06-29T19:59:24.930+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='файл'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='VCN'/><category scheme='http://www.blogger.com/atom/ns#' term='FSCTL'/><category scheme='http://www.blogger.com/atom/ns#' term='LCN'/><title type='text'>Быстрое копирование файлов</title><content type='html'>&lt;div align='justify' style='text-indent: 40px;'&gt;Беру в руки листок с заданиями по предмету операционные системы. Пробегаю глазами по тексту: эхо-сервер на мэйлслотах, асинхронный ввод-вывод, разделяемая память и прочая лабуда. Сплошь и рядом изучение существующих механизмов. Где же романтика?&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Постойте, что тут у нас? Задача тридцать три: написать программу для быстрого копирования файлов, провести сравнение скорости с проводником Windows и Total Commander-ом в файловых системах FAT и NTFS. Оба-на! Ни единой подробности реализации в условии задания. В чём прикол? Мы же никогда не обгоним вышеперечисленных "соперников". Не говоря уже о десятке сторонних программ, встраиваемых в проводних Windows и ускоряющих(это ещё под сомнением) копирование.&lt;/div&gt;&lt;span class=fullpost&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Что же мы можем придумать такого необычного? Да и вообще, что обуславливает вариативность задания? Очевидные параметры:&lt;/div&gt;1. Размер буфера&lt;br /&gt;2. Вкл/Откл буферизации ОС&lt;br /&gt;3. Прочие аттрибуты открытия файла&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Для всех является очевидным, что чтение одного мегабайта данных за раз и чтение десять раз по сто килобайт несоизмеримы по времени. Второе несомненно выполняется намного дольше. А значит, чем больше буфер мы выберем, тем быстрее будет наше копирование. Это обычная логика здравомыслящего человека. Но мы ведь не для этого здесь собрались? Более бесполезную статью трудно придумать. Даже по меркам моего блога. И вообще уже, какая то вода получается, а не статья.&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Нам известно, что в общем случае файл на жёстком диске хранится не одним куском, а разбит на фрагменты (в терминологии Microsoft - extents). Под экстентом мы будем понимать набор смежных секторов носителя информации. А что если мы будем считывать файл блоками размером с эти экстенты? Если размер экстента будет неприлично большой, будем считывать его за несколько раз. Тоесть при каждом считывании, потребуется считать с диска только подряд идущие сектора. Даст ли нам это преимущество в скорости? Для слабофрагментированных файлов наш алгоритм вообще сведётся к изначальному примитивному копированию с постоянным буфером. Немного погуглив, нашёл следующие ссылки:&lt;/div&gt;1. &lt;a href="http://msdn.microsoft.com/en-us/library/aa364572(VS.85).aspx"&gt;FSCTL_GET_RETRIEVAL_POINTERS Control Code&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.gidforums.com/t-4551.html"&gt;http://www.gidforums.com/t-4551.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Речь идёт о вызове функции драйвера для получения массива экстентов для конкретного файла с информацией о размере и привязке экстентов к реальным кластерам на диске.&lt;/div&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;VCN (Virtual Cluster Number) - номер виртуального кластера. Для каждого файла своя нумерация. Например, виртуальный кластер #3 в файле на диске (диск с размером кластера 4КБ) означает область файла с байта 12288 до байта 16391.&lt;/div&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;LCN (Logical Cluster Number) - номер реального кластера на носителе информации. Каждому виртуальному кластеру сопоставлен ровно один реальный и наоборот. Виртуальные нумеруются от начала файла, а реальные от начала диска.&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Теперь разберёмся с кэшированием. Нужно ли нам кэширование ОС при чтении и при записи? Для сильно-фрагментированных файлов кэширование чтения не только не полезно, но и вредно. Мы ведь считываем с диска практически всегда поэкстентно. А значит послеидущие сектора нам точно не нужны. Значит кэширование чтения нам только навредит. Практика показала, что от кэширования записи тоже лучше отказаться. Ну и чего нам теперь не хватает? Берём и пишем код.&lt;/div&gt;&lt;br /&gt;&lt;code style='font-size:8pt;'&gt;&lt;pre&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc9"&gt;#define _WIN32_WINNT 0x0400&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc9"&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;#include &amp;lt;WinIoCtl.h&amp;gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;using&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;namespace&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;std&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;wchar_t&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FROM_FILE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;L&lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"c:\\Documents and Settings\\Артурчег\\Local Settings\\Application Data\\Microsoft\\CD Burning\\EPL.2009.Liverpool.vs.Arsenal.720p.HDTV.x264\\First time-001.mkv"&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;wchar_t&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;TO_FILE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;L&lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"W:\\1.mkv"&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;main&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;argc&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;TCHAR&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;argv&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[])&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;time1&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetTickCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Подготовка файла&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;HANDLE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFile&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;CreateFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FROM_FILE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// 126 parts&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GENERIC_READ&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_SHARE_READ&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;OPEN_EXISTING&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_ATTRIBUTE_NORMAL&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;|&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_FLAG_NO_BUFFERING&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFile&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;==&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;INVALID_HANDLE_VALUE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"CreateFile(): error "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetLastError&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Подготовка буферов&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;STARTING_VCN_INPUT_BUFFER&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;inputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;inputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;StartingVcn&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QuadPart&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;sz&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;sizeof&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RETRIEVAL_POINTERS_BUFFER&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)+&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;sizeof&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;LARGE_INTEGER&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)*&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;2&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1000000&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RETRIEVAL_POINTERS_BUFFER&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;RETRIEVAL_POINTERS_BUFFER&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;new&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;char&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;sz&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;];&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ExtentCount&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1000000&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;StartingVcn&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QuadPart&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Запрос данных о файле&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;retSize&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;BOOL&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DeviceIoControl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;HANDLE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;               &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// handle to device&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FSCTL_GET_RETRIEVAL_POINTERS&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// dwIoControlCode&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;LPVOID&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;inputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;        &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// input buffer&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;sizeof&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;inputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;),&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// size of input buffer&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;LPVOID&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;        &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// output buffer&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;sz&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;                   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// size of output buffer&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;LPDWORD&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;retSize&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;           &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// number of bytes returned&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;LPOVERLAPPED&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;        &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// OVERLAPPED structure&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(!&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"DeviceIoControl() error: "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetLastError&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;2&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"File consist from "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ExtentCount&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;" extents."&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SECTOR_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;4096&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Создание цепочки размеров&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arrsize&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ExtentCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;new&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arrsize&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;];&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;]&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SECTOR_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;Extents&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;].&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;NextVcn&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QuadPart&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;StartingVcn&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QuadPart&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fsz&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;];&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;for&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arrsize&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;++)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;]&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;Extents&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;].&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;NextVcn&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QuadPart&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;outputBuffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;Extents&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;].&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;NextVcn&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QuadPart&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;]&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SECTOR_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fsz&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;+=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;];&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"Aligned file size is "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fsz&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;" bytes."&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;MAX_BUFFER_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;10&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1024&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1024&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;char&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;buffer&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;new&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;char&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;MAX_BUFFER_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;];&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Создание файла&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;HANDLE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFileTo&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;CreateFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;TO_FILE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GENERIC_WRITE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_SHARE_WRITE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;CREATE_ALWAYS&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_ATTRIBUTE_NORMAL&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;|&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_FLAG_NO_BUFFERING&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc15"&gt;//!!! Remove if no aligned to 4096 !!!&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFileTo&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;==&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;INVALID_HANDLE_VALUE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"CreateFile(): error "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetLastError&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;1&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Цикл копирования&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;curSize&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesReaden&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesWritten&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;for&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arrsize&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;++)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;]&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;MAX_BUFFER_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;curSize&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;];&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;else&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;curSize&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;MAX_BUFFER_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;arr&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;[&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;]&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;MAX_BUFFER_SIZE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;i&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;--;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;//curSize = MAX_BUFFER_SIZE;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ReadFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;buffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;curSize&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesReaden&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(!&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"Reading Collision: "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetLastError&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;curSize&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;!=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesReaden&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"(curSize != bytesReaden) == ("&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;curSize&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;" != "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesReaden&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;")\n"&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;WriteFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFileTo&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;buffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesReaden&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesWritten&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(!&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"Writing Collision ("&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesWritten&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;" from "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; \&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesReaden&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;" ) "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetLastError&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// Дописывание хвоста файла (буферизация не отключена)&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;CloseHandle&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFileTo&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;HANDLE&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFileTo&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;CreateFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;TO_FILE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_APPEND_DATA&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_SHARE_WRITE&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;OPEN_EXISTING&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;FILE_ATTRIBUTE_NORMAL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;WriteFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFileTo&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;buffer&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesReaden&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;bytesWritten&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(!&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;fResult&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"Writing ERROR: "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetLastError&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;endl&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;break&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;CloseHandle&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFile&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;CloseHandle&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;hFileTo&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;DWORD&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;time2&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;GetTickCount&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cout&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;"All right, my time is "&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;time2&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;time1&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;" ms\n"&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;p align='right' style='font-size:7pt;'&gt;Подсветка синтаксиса выполнена при помощи &lt;a href="http://notepad-plus.sourceforge.net/"&gt;Notepad++&lt;/a&gt;&lt;/p&gt;&lt;hr size='1' noshade /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Реализованная система прошла тестирование на сильно-фрагментированных файлах. Быстро отыскать такие файлы в системе вам поможет отчет стандартной программы дефрагментации(рис. 1). Результаты тестирования представлены в таблице 1 и таблице 2. Тесты были проведены именно в том порядке в котором они представлены в таблице. Таблица говорит сама за себя.&lt;/div&gt;&lt;br /&gt;&lt;div align='center'&gt;&lt;img src="http://4.bp.blogspot.com/_sKX69jB94Rc/SkfSiCA2vzI/AAAAAAAAEUk/pNe-IP72tNg/s1600/defrag.png" /&gt;&lt;br /&gt;Рис. 1. Отчёт дефрагментатора&lt;/div&gt;&lt;br /&gt;&lt;div align='right'&gt;Таблица 1&lt;/div&gt;&lt;div align='center'&gt;&lt;code&gt;&lt;pre&gt;+------------+--------------+----------------------------------+&lt;br /&gt;| Фрагментов | Размер файла | Имя файла                        |&lt;br /&gt;+------------+--------------+----------------------------------+&lt;br /&gt;| 1,858      | 1.01 ГБ      | First time-001.mkv               |&lt;br /&gt;+------------+--------------+----------------------------------+&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| Программа                     | Время     |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| FragCopy (без буф-ии)         | 62.128сек |&lt;br /&gt;| FragCopy (без буф-ии)         | 63.944сек |&lt;br /&gt;| FragCopy (без буф-ии)         | 62.078сек |&lt;br /&gt;| FragCopy (без буф-ии чтения)  | 62.484сек |&lt;br /&gt;| FragCopy (с буф-ей)           | 92.547сек |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| Total Commander 6.55 (32Bit)  | 79.200сек |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| Проводник (Windows XP 32Bit)  | 98.200сек |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align='right'&gt;Таблица 2&lt;/div&gt;&lt;div align='center'&gt;&lt;code&gt;&lt;pre&gt;+------------+--------------+----------------------------------+&lt;br /&gt;| Фрагментов | Размер файла | Имя файла                        |&lt;br /&gt;+------------+--------------+----------------------------------+&lt;br /&gt;| 1,202      | 662 МБ       | A0017447.exe                     |&lt;br /&gt;+------------+--------------+----------------------------------+&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| Программа                     | Время     |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| FragCopy (без буф-ии)         | 10.110сек |&lt;br /&gt;| FragCopy (без буф-ии)         | 10.062сек |&lt;br /&gt;| FragCopy (без буф-ии)         | 10.062сек |&lt;br /&gt;| FragCopy (без буф-ии)         | 10.000сек |&lt;br /&gt;| FragCopy (без буф-ии чтения)  | 38.703сек |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| Total Commander 6.55 (32Bit)  | 15.200сек |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;| Проводник (Windows XP 32Bit)  | 13.900сек |&lt;br /&gt;+-------------------------------+-----------+&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Алгоритм хорошо себя показывает на файлах с большим числом фрагментов. Ну правильно, ведь при малом числе экстентов и их не малом размере мы копируем буфером постоянного размера. Никакого разнообразия. Есть идеи?&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-643365208863832318?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/643365208863832318/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=643365208863832318' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/643365208863832318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/643365208863832318'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/06/blog-post_29.html' title='Быстрое копирование файлов'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_sKX69jB94Rc/SkfSiCA2vzI/AAAAAAAAEUk/pNe-IP72tNg/s72-c/defrag.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5414265192448834220</id><published>2009-06-28T23:40:00.006+04:00</published><updated>2009-06-29T01:56:48.263+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xilinx'/><category scheme='http://www.blogger.com/atom/ns#' term='триггер'/><category scheme='http://www.blogger.com/atom/ns#' term='схемотехника'/><category scheme='http://www.blogger.com/atom/ns#' term='логика'/><title type='text'>Попытка создать ку-Триггер</title><content type='html'>Появилась идея сделать ещё один шаг эволюции в схеме триггера . . .&lt;br /&gt;Не 2 входа, 2 коньюнктора и 2 выхода, а всех элементов по три.&lt;br /&gt;Ниже приведены скриншоты схем и тестов.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;div align='center'&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_sKX69jB94Rc/SkfH4JclChI/AAAAAAAAEUE/iU9ASD6TgSE/s1600/2_trigger.png" /&gt;&lt;br /&gt;Рис. 1. Схема обычного триггера&lt;br /&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_sKX69jB94Rc/SkfH4IGR6bI/AAAAAAAAEUM/E7hvIquuPNc/s1600/2_test.png" /&gt;&lt;br /&gt;Рис. 2. Симуляция работы обычного триггера&lt;br /&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_sKX69jB94Rc/SkfH4UofVTI/AAAAAAAAEUU/rHAYpk955s4/s1600/3_trigger.png" /&gt;&lt;br /&gt;Рис. 3. Схема нового триггера&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_sKX69jB94Rc/SkfH4QOCXBI/AAAAAAAAEUc/zkln6_kurZs/s1600/3_test.png" /&gt;&lt;br /&gt;Рис. 4. Симуляция работы нового триггера&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Работа обычного триггера прерывается при попытке подать на оба входы "1".&lt;br /&gt;Работа нового триггера прерывается при попытке подать на все три входа "0".&lt;br /&gt;Не совсем то, чего я ожидал. Думал щас какая-нить прикольная фигня получится.&lt;br /&gt;&lt;br /&gt;// Если потом найду время ещё на других тестах погоняю.&lt;br /&gt;// Если у вас есть идеи по этому поводу, пишите в комментах свои тесты.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5414265192448834220?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5414265192448834220/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5414265192448834220' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5414265192448834220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5414265192448834220'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/06/blog-post_28.html' title='Попытка создать ку-Триггер'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfH4JclChI/AAAAAAAAEUE/iU9ASD6TgSE/s72-c/2_trigger.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-106584371618523150</id><published>2009-06-22T11:43:00.007+04:00</published><updated>2009-08-28T18:42:45.980+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='widget'/><category scheme='http://www.blogger.com/atom/ns#' term='qlineedit'/><title type='text'>QLineEditGhost</title><content type='html'>Слепил себе простенький виджет на Qt 4.5.1. Строка ввода с "призрачной" надписью. Интересно почему изначально не присутствовала эта возможность у QLineEdit-а.&lt;br /&gt;&lt;br /&gt;&lt;div align='center'&gt;&lt;img src='http://img44.imageshack.us/img44/897/84641208.gif'/&gt;&lt;br /&gt;Рис. 1. Анимация (18Кб)&lt;/div&gt;&lt;br /&gt;&lt;span class=fullpost&gt;Исходник:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;span class="sch_cpp_sc9"&gt;#ifndef QLINEEDITGHOST_H&lt;br /&gt;#define QLINEEDITGHOST_H&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc9"&gt;#include &amp;lt;QLineEdit&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;class&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QLineEditGhost&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QLineEdit&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;Q_OBJECT&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;bool&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;isGhostNow&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QLineEditGhost&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;""&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QWidget&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;*&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;parent&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;NULL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;):&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QLineEdit&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;parent&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;),&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;),&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;isGhostNow&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;true&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;connect&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;this&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SIGNAL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cursorPositionChanged&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)),&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;       &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;this&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SLOT&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cursorPositionChangedGhost&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;))&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;connect&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;this&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SIGNAL&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;textEdited&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)),&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;       &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;this&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;SLOT&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;textEditedGhost&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;))&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setText&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QPalette&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;palette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setColor&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QPalette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;::&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;Text&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QColor&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;128&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;128&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;128&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setPalette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;text&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;isGhostNow&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc6"&gt;""&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QLineEdit&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;::&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;text&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;return&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;void&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setGhostText&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;const&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_in&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_in&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;public&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;slots&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;:&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;void&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;cursorPositionChangedGhost&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;from&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;int&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;to&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;((&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;to&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;!=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;isGhostNow&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setCursorPosition&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc16"&gt;void&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;textEditedGhost&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QString&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;str&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QPalette&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;palette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;();&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;isGhostNow&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setColor&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QPalette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;::&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;Text&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QColor&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setPalette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;isGhostNow&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;false&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setText&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;text&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;().&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;left&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;text&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;().&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;length&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;-&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;length&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;if&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;text&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;().&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;length&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;()&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;==&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;0&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;{&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;.&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setColor&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QPalette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;::&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;Text&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;QColor&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;128&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;128&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;,&lt;/span&gt;&lt;span class="sch_cpp_sc4"&gt;128&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;)&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setPalette&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;pal&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;isGhostNow&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;=&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc5"&gt;true&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;;&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;setText&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;(&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc11"&gt;ghostText_&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt; &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;);&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;}&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc10"&gt;};&lt;/span&gt;&lt;span class="sch_cpp_sc0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="sch_cpp_sc9"&gt;#endif &lt;/span&gt;&lt;span class="sch_cpp_sc2"&gt;// QLINEEDITGHOST_H&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;hr size='1' noshade /&gt;&lt;p align='right' style='font-size:7pt;'&gt;Подсветка синтаксиса выполнена при помощи &lt;a href="http://notepad-plus.sourceforge.net/"&gt;Notepad++&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Во время написания кода возникли проблемы в вызовом протектед метода&lt;br /&gt;родительского класса. Пытался написать так: &lt;b&gt;((QLineEdit*)this)-&gt;text()&lt;/b&gt;&lt;br /&gt;Думал-думал и придумал: &lt;b&gt;QLineEdit::text()&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ну и в конце концов, меня уже взбесило, что исходник не влазит по ширине и по-уродски обрубаются строчки. Увеличил ширину блога на 200 пикселей. Теперь ширина 944px. Картинку-шапку тоже пришлось увеличить.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-106584371618523150?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/106584371618523150/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=106584371618523150' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/106584371618523150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/106584371618523150'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/06/qt-4.html' title='QLineEditGhost'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-1962257091213473114</id><published>2009-06-17T19:47:00.013+04:00</published><updated>2009-07-07T02:18:05.631+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='вирусы'/><category scheme='http://www.blogger.com/atom/ns#' term='реестр'/><category scheme='http://www.blogger.com/atom/ns#' term='права'/><category scheme='http://www.blogger.com/atom/ns#' term='безопасность'/><category scheme='http://www.blogger.com/atom/ns#' term='защита'/><title type='text'>Вас притесняют вирусы?</title><content type='html'>&lt;div align='justify' style='text-indent: 40px;'&gt;Какие у вас права в системе? Администратора? А вы можете запустить диспетчер задач или редактор реестра? Если система говорит вам что администратор отключил/запретил то или иное действие, а администратор это вы . . . Тогда вас поимел вирус. Этот пост для вас.&lt;/div&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;b&gt;1. Диспетчер задач и редактор реестра&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Перечислю наиболее простые способы возвращения себе &lt;i&gt;прав запуска&lt;/i&gt; диспетчера задач и редактора реестра. Все способы требуют наличия &lt;i&gt;прав редактирования&lt;/i&gt; реестра.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Способ 1&lt;/u&gt; ( Требует наличия "c:\windows\regedit.exe" )&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Скопируйте текст ниже в текстовый файл и переименуйте его в *.REG, после чего кликните по нему 2 раза для добавления информации в реестр.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style='font-size:10pt'&gt;Windows Registry Editor Version 5.00&lt;br /&gt;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]&lt;br /&gt;"DisableTaskMgr"=dword:00000000&lt;br /&gt;"DisableRegistryTools"=dword:00000000&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Способ 2&lt;/u&gt; ( Требует наличия "c:\windows\system32\reg.exe" )&lt;br /&gt;&lt;br /&gt;Запустите командную строку: Пуск -&gt; Выполнить... -&gt; cmd&lt;br /&gt;Выполните 2 команды:&lt;br /&gt;1) &lt;code style='font-size:10pt'&gt;reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskMgr /t REG_DWORD /d 0 /f&lt;/code&gt;2) &lt;code style='font-size:10pt'&gt;reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableRegistryTools /t REG_DWORD /d 0 /f&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Способ 3&lt;/u&gt; ( Требует наличия "c:\windows\system32\wscript.exe" )&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Скопируйте текст ниже в текстовый файл и переименуйте его в *.JS, после чего кликните по нему 2 раза для запуска скрипта добавляющего информацию в реестр.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style='font-size:10pt'&gt;reg = new ActiveXObject("WScript.Shell");&lt;br /&gt;&lt;br /&gt;reg.RegWrite("HKEY_CURRENT_USER\\Software\&lt;br /&gt;\\Microsoft\\Windows\\CurrentVersion\&lt;br /&gt;\\Policies\\System\\DisableTaskMgr",0,"REG_DWORD");&lt;br /&gt;&lt;br /&gt;reg.RegWrite("HKEY_CURRENT_USER\\Software\&lt;br /&gt;\\Microsoft\\Windows\\CurrentVersion\&lt;br /&gt;\\Policies\\System\\DisableRegistryTools",0,"REG_DWORD");&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Отображение скрытых и системных файлов в проводнике&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Частенько вирусы не дают возможности просмотреть скрытые и системные файлы в проводнике. При попытке изменения этих атрибутов в свойствах папки - вирус исправляет настройки обратно. Если изменять значения ключей реестра - вирус это тоже исправляет обратно. Есть способ это уладить.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Необходимо задать следующие значения ключам реестра в ветке "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced":&lt;/div&gt;1) Hidden = 1&lt;br /&gt;2) SuperHidden = 1&lt;br /&gt;3) ShowSuperHidden = 2&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;После установки значений ключей, система вообще не сможет понять что она показывает (рис.&amp;nbsp;1). Главное, что и скрытые и системные файлы отныне в проводнике показываются. Теперь уж вирус от нас не спрячется. Почему для настройки отображения скрытых и системных файлов в проводнике задействованы 3 ключа реестра? Hidden, SuperHidden, ShowSupeHidden . . . (может кто подскажет в чём прикол?)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src='http://img31.imageshack.us/img31/1763/71139783.png' /&gt;&lt;br /&gt;Рис. 1. Свойства папки / Вид&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-1962257091213473114?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/1962257091213473114/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=1962257091213473114' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1962257091213473114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1962257091213473114'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/06/blog-post.html' title='Вас притесняют вирусы?'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-4063641326483012955</id><published>2009-05-30T20:50:00.001+04:00</published><updated>2009-11-20T21:08:45.059+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='CLSID'/><category scheme='http://www.blogger.com/atom/ns#' term='DLL'/><category scheme='http://www.blogger.com/atom/ns#' term='DropHandler'/><title type='text'>DropHandler (не доделал пока)</title><content type='html'>Началось всё с того, что я взял несколько сотен мегабайт музыки у моей девушки. Каково же было моё удивление, когда вместо фотографий альбомов, я обнаружил фотки подружек/одноклассниц/семьи. Задумался над тем, как же она выставляла все эти фотки. Сдаётся мне - каждую вручную через iTunes. Потом пошла мысль за мыслью об монотонных операциях, которые бы желательно сократить . . .&lt;span class=fullpost&gt;&lt;br /&gt;&lt;br /&gt;1. Рождение идеи&lt;br /&gt;&lt;br /&gt;А ведь было бы гораздо проще и интуитивно понятнее, если бы можно было  просто натащить фотку мышкой на мп3-шку. Действительно, просто хватаем, тащим мышой и отпускаем на нужной песне - бац фотка стала картинкой альбома.&lt;br /&gt;&lt;br /&gt;2. Разведка обстановки&lt;br /&gt;&lt;br /&gt;Сказано - сделано. Пошли копать под MS Explorer. Хватаю мышой JPG и тащу на MP3.  И что я вижу? мп3-шке абсолютно пофигу все мои старания. Она просто прикидывается фоном, даже слушать не хочет ни про какую жпг. Погодите, а на кого вообще можно другие файлы перетаскивать? Метод простой проверки показал: EXE, CMD, COM, BAT, JS, VBS и конечно же фолдеры. Интересно знать, почему они реагируют на drag&amp;amp;drop, а остальные нет.&lt;br /&gt;&lt;br /&gt;За ответом на этот вопрос идём в реестр в ветвь HKCR. Находим папку "HKCR/.exe", её значение по умолчанию "exefile". Теперь находим папку "HKCR/exefile" и видим всю информацию о возможных действиях с ехе-файлами. Бросается в глаза папка "HKCR/exefile/shellex/DropHandler", её имя говорит само за себя. Обработчик бросания - дословный перевод. Значение по умолчанию у этой ветви реестра - странный набор символов через дефис, заключённый в фигурные скобки. Где-то я такие уже видел . . .&lt;br /&gt;&lt;br /&gt;А! Точно! В ветке "HKCR/CLSID" полным полно таких. CLSID - как пить дать Class ID. Внутри найденной ветви реестра видим путь к shell32.dll и еще один непонятный ключик ThreadingModel со значением Apartment. Теперь нам понятно, при перетаскивании любого объекта файловой системы на ехе-файл, будет вызываться один из методов динамической библиотеки shell32.dll&lt;br /&gt;&lt;br /&gt;3. Принятие первичных мер&lt;br /&gt;&lt;br /&gt;Создаём ветвь реестра "HKCR/.mp3/shellex/DropHandler" со значением по умолчанию как и у ехе-шника. Смотрим, что изменилось в проводнике. Хватаем картинку и тащим на мп3. И вот оно! MP3 файл выделяется как и EXE при натаскивании на него файла. Ну чтож, отпускаем. Как и ожидалось открылся плеер по умолчанию и стал проигрывать нашу песню. Ну а чего мы ещё хотели установив мп3-шке DropHandler от ехе-шки? Следующим этапом по логике вещей должно стать создание своего собственного DropHandler-а и получение его собственного CLSID.&lt;br /&gt;&lt;br /&gt;4. Ныряем с головой&lt;br /&gt;&lt;br /&gt;Ни разу ничего похожего не делал. Погуглил-погуглил и определился. Следует в MSVC создать проект ATL, как DLL. CLSID свежесозданной длл-ки я обнаружил прямо в исходном коде. Он сгенерировался в процессе создания проекта. Теперь следует найти в исходниках(а их не мало уже) основной класс и пронаследовать его от IDropHandler и IPersistFile. Придётся поставить порядка 12-ти методов-заглушек и только необходимые нам наделить логикой. Каждый раз при перекомпиляции проекта студия создаёт необходимые ветви реестра в "HKCR/CLSID" и "HKCR/AppID". Только внутри они пустые, я каждый раз заполнял их по примеру стандартного DropHandler-а shell32.dll. (А надо ли это было?)&lt;br /&gt;&lt;br /&gt;// DropHandler всё ещё на операционном столе.&lt;br /&gt;// Откликаться на дрэг пока не желает.&lt;br /&gt;// Работа кипит.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-4063641326483012955?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/4063641326483012955/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=4063641326483012955' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4063641326483012955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4063641326483012955'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/05/drophandler.html' title='DropHandler (не доделал пока)'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3172008660912245758</id><published>2009-05-24T02:08:00.006+04:00</published><updated>2009-07-07T02:17:59.260+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='оптимизация'/><category scheme='http://www.blogger.com/atom/ns#' term='браузер'/><category scheme='http://www.blogger.com/atom/ns#' term='реестр'/><category scheme='http://www.blogger.com/atom/ns#' term='моддинг'/><category scheme='http://www.blogger.com/atom/ns#' term='настройки'/><title type='text'>Google Chrome Tweaks</title><content type='html'>Не все настройки браузера Google Chome видны из интерфейса, некоторые вообще можно указать только при  запуске. Решил собрать в одном месте все интересные особенности браузера Google Chrome. Когда составлю свою оптимальную конфигурацию, щадящую озу, но всё же функциональную - обязательно припишу снизу статьи.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;1. Скрытие/отображение вкладок:&lt;br /&gt;&lt;pre style="font-size:10pt"&gt;&lt;b&gt;Ctrl + B&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. История в текущей вкладке:&lt;br /&gt;&lt;pre style="font-size:10pt"&gt;&lt;b&gt;зажать кнопку мыши на кнопке "назад"&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3. Процессы и треды (ключи запуска)&lt;br /&gt;&lt;pre style="font-size:10pt"&gt;&lt;b&gt;–process-per-tab&lt;br /&gt;–process-per-site&lt;br /&gt;–single-process&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4. Информация о браузере:&lt;br /&gt;&lt;pre style="font-size:10pt"&gt;&lt;b&gt;about:version&lt;/b&gt; и &lt;b&gt;about:&lt;/b&gt; - версия браузера&lt;br /&gt;&lt;b&gt;about:plugins&lt;/b&gt; - плагины&lt;br /&gt;&lt;b&gt;about:histograms&lt;/b&gt; - гистограммы&lt;br /&gt;&lt;b&gt;about:dns&lt;/b&gt; - DNS адреса&lt;br /&gt;&lt;b&gt;about:cache&lt;/b&gt; - кэш&lt;br /&gt;&lt;b&gt;view-cache:stats&lt;/b&gt; - статистика по кэшу&lt;br /&gt;&lt;b&gt;about:memory&lt;/b&gt; - Статистика по памяти&lt;br /&gt;&lt;b&gt;about:crash&lt;/b&gt; - Опаньки . . .&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;5. Все ключи запуска:&lt;br /&gt;&lt;pre style="font-size:10pt"&gt;&lt;b&gt;-disable-hang-monitor&lt;br /&gt;-disable-metrics&lt;br /&gt;-disable-metrics-reporting&lt;br /&gt;-assert-test&lt;br /&gt;-renderer-assert-test&lt;br /&gt;-crash-test&lt;br /&gt;-renderer-crash-test&lt;br /&gt;-renderer-startup-dialog&lt;br /&gt;-plugin-startup-dialog&lt;br /&gt;-testshell-startup-dialog&lt;br /&gt;-plugin-launcher&lt;br /&gt;-channeltesting-channel&lt;br /&gt;-homepagestart-renderers-manuallyrenderer&lt;br /&gt;-renderer-pathplugin&lt;br /&gt;-single-process&lt;br /&gt;-process-per-tab&lt;br /&gt;-process-per-site&lt;br /&gt;-in-process-plugins&lt;br /&gt;-no-sandbox&lt;br /&gt;-safe-plugins&lt;br /&gt;-trusted-plugins&lt;br /&gt;-test-sandbox&lt;br /&gt;-user-data-dir&lt;br /&gt;-appupload-file&lt;br /&gt;-dom-automation&lt;br /&gt;-plugin-pathjs-flags&lt;br /&gt;-geoidlangdebug-children&lt;br /&gt;-wait-for-debugger-children&lt;br /&gt;-log-filter-prefix&lt;br /&gt;-enable-logging&lt;br /&gt;-dump-histograms-on-exit&lt;br /&gt;-disable-logging&lt;br /&gt;-remote-shell-port&lt;br /&gt;-uninstallomnibox-popup-count&lt;br /&gt;-automation-channel&lt;br /&gt;-restore-last-session&lt;br /&gt;-record-mode&lt;br /&gt;-playback-mode&lt;br /&gt;-no-events&lt;br /&gt;-hide-icons&lt;br /&gt;-show-icons&lt;br /&gt;-make-default-browser&lt;br /&gt;-proxy-server&lt;br /&gt;-dns-log-details&lt;br /&gt;-dns-prefetch-disable&lt;br /&gt;-debug-print&lt;br /&gt;-allow-all-activex&lt;br /&gt;-disable-dev-tools&lt;br /&gt;-always-enable-dev-tools&lt;br /&gt;-memory-model&lt;br /&gt;-tab-count-to-load-on-session-restore&lt;br /&gt;-memory-profile&lt;br /&gt;-enable-file-cookies&lt;br /&gt;-start-maximized&lt;br /&gt;-enable-watchdogfirst-run&lt;br /&gt;-message-loop-strategy&lt;br /&gt;-message-loop-histogrammer&lt;br /&gt;-importsilent-dump-on-dcheck&lt;br /&gt;-disable-prompt-on-repost&lt;br /&gt;-disable-popup-blocking&lt;br /&gt;-disable-javascript&lt;br /&gt;-disable-java&lt;br /&gt;-disable-plugins&lt;br /&gt;-disable-images&lt;br /&gt;-use-lf-heap&lt;br /&gt;-new-http&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;6. Горячие клавиши&lt;br /&gt;&lt;pre style="font-size:10pt"&gt;&lt;br /&gt;&lt;b&gt;[Ctrl + T]&lt;/b&gt; - Открыть новую вкладку&lt;br /&gt;&lt;b&gt;[CTRL + W]&lt;/b&gt; - Закрыть текущую вкладку&lt;br /&gt;&lt;b&gt;[Ctrl + Shift + T]&lt;/b&gt; - Открыть последнюю закрытую вкладку&lt;br /&gt;&lt;b&gt;[Ctrl + N]&lt;/b&gt; - Новое окно(не вкладка)&lt;br /&gt;&lt;b&gt;[Ctrl + Shift + N]&lt;/b&gt; - Открыть окно с режимом инкогнито&lt;br /&gt;&lt;b&gt;[Ctrl + L]&lt;/b&gt; - Выделить URL страницы(перейти в строку адреса)&lt;br /&gt;&lt;b&gt;[Ctrl + R]&lt;/b&gt; - Перезагрузить страницу&lt;br /&gt;&lt;b&gt;[Ctrl + U]&lt;/b&gt; - Смотреть исходный код страницы&lt;br /&gt;&lt;b&gt;[Ctrl + H]&lt;/b&gt; - Читать историю&lt;br /&gt;&lt;b&gt;[Ctrl + J]&lt;/b&gt; - Страница ваших загрузок&lt;br /&gt;&lt;b&gt;[Shift + Esc]&lt;/b&gt; - Дипетчер задач&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Ctrl + F]&lt;/b&gt; - Поиск текста на странице&lt;br /&gt;&lt;b&gt;[Ctrl + G]&lt;/b&gt; - Искать дальше&lt;br /&gt;&lt;b&gt;[Ctrl + P]&lt;/b&gt; - Печать страницы&lt;br /&gt;&lt;b&gt;[Ctrl + D]&lt;/b&gt; - Добавить страницу в закладки&lt;br /&gt;&lt;b&gt;[Ctrl + E / Ctrl + K]&lt;/b&gt; - Поиск с помощью Гугла&lt;br /&gt;&lt;b&gt;[Ctrl + "+" / Ctrl + MouseUp]&lt;/b&gt; - Приблизить&lt;br /&gt;&lt;b&gt;[CTRL + "-" / CTRL + MouseDown]&lt;/b&gt; - Отдалить&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3172008660912245758?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3172008660912245758/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3172008660912245758' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3172008660912245758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3172008660912245758'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/05/google-chrome-tweaks.html' title='Google Chrome Tweaks'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-4758897610822440415</id><published>2009-05-19T22:56:00.000+04:00</published><updated>2009-05-20T22:19:26.430+04:00</updated><title type='text'>Обрывки статей</title><content type='html'>Наконец-то сделал в блоге "обрывки"/начала статей на главной странице. Я использовал способ, описанный &lt;u&gt;&lt;a href="http://vonderer.blogspot.com/2007/02/blogger-beta.html"&gt;здесь&lt;/a&gt;&lt;/u&gt;.&lt;br /&gt;Есть желание сделать текст в статьях, видимый только на главной.&lt;br /&gt;Он будет кратко обещать читателю содержимое остальной части.&lt;br /&gt;И работать будет диаметрально-противоположно остальному тексту.&lt;br /&gt;&lt;br /&gt;Структура:&lt;br /&gt;1. Введение в тему статьи&lt;br /&gt;2. Описание тела статьи&lt;br /&gt;3. Тело статьи&lt;br /&gt;&lt;br /&gt;На главной будут видны пункты 1 и 2.&lt;br /&gt;На странице со статьёй будут только пункты 1 и 3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-4758897610822440415?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/4758897610822440415/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=4758897610822440415' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4758897610822440415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4758897610822440415'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/05/blog-post_19.html' title='Обрывки статей'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-1097314740198817717</id><published>2009-05-16T17:17:00.001+04:00</published><updated>2009-06-03T20:58:17.323+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='формат'/><category scheme='http://www.blogger.com/atom/ns#' term='GIF'/><category scheme='http://www.blogger.com/atom/ns#' term='сжатие'/><title type='text'>Чего мне не хватает в GIF</title><content type='html'>Все форматы изображений по-своему хороши.&lt;br /&gt;Но помимо достоинств у каждого формата есть и недостатки.&lt;br /&gt;Эта статья о том чего мне не хватает в формате GIF.&lt;br /&gt;&lt;br /&gt;&lt;span class=fullpost&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Ну почему нет поддержки многоцветных изображений (более 8 бит на точку)? Я не имею ввиду различные извращения с поочерёдной прорисовкой областей картинки и получением таким образом картинок из 512, 1024, ... 8192, ... цветов(рис. 1). Конечно, заметен момент прорисовки из-за времени загрузки, но такой "&lt;a href="http://absurdopedia.wikia.com/wiki/Костыль"&gt;костыль&lt;/a&gt;" имеет место быть. А ведь можно было сжимать отдельные битовые плоскости. То есть каждую из трёх цветовых компонент (Red, Green, Blue) отдельно как 8-битовую картинку. Для равномерной подкачки из интернета хранить и сжимать изображение построчно (имеются ввиду строки пикселей в изображении). На мой взгляд - это явное упущение.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='center'&gt;&lt;img src='http://img35.imageshack.us/img35/4433/tc217e.gif' /&gt;&lt;br /&gt;Рис. 1. Изображение содержит 173 кадра (44288 цветов)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Очень жаль что нет возможности алгоритмически задать порядок следования кадров. Ведь как было бы хорошо, имея набор кадров в GIF-файле задать порядок их следования специальным образом. Стало бы возможным создать начало, повторяющуюся N раз середину и хвост. Как вам такой вариант задания порядка кадров(см. ниже)?&lt;/div&gt;&lt;br /&gt;&lt;pre style='font-size:10pt'&gt;&lt;b&gt;1,2,3,[10:4,5,6,7],8,9,10&lt;/b&gt;&lt;br /&gt;&lt;b&gt;1,2,3&lt;/b&gt; - Начало анимации из кадров 1-3&lt;br /&gt;&lt;b&gt;[10:4,5,6,7]&lt;/b&gt; - Цикл из кадров 4-7 на 10 итераций&lt;br /&gt;&lt;b&gt;8,9,10&lt;/b&gt; - Хвост анимации из кадров 8-10&lt;/pre&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;В своё время очень хотел чтобы у GIF формата была возможность при перерисовке нового кадра применять палитру нового кадра к старому кадру. У меня даже имелся набор картинок одинаковых по содержимому и отличающихся лишь палитрой. При последовательной смене кадров было видно очень красивую трёх-конечную спираль(рис. 2). На представленной анимации происходит отрисовка каждого кадра, а ведь можно было бы просто менять палитру предыдущего кадра и даже не хранить байты всех кадров кроме первого . . . и вес был бы раз в 20 меньше, но увы.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='center'&gt;&lt;img src='http://img197.imageshack.us/img197/5427/52450276.gif' /&gt;&lt;br /&gt;Рис. 2. Изображение содержит 32 кадра.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;З.Ы.&lt;/b&gt; Лучшее ПО для создания GIF анимаций: &lt;a href='http://www.gamani.com/'&gt;GIF Movie Gear&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://img20.imageshack.us/img20/465/46730380.gif"/&gt;&lt;br /&gt;Рис. 3. Весит эта GIF анимация порядка 3МБ.&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-1097314740198817717?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/1097314740198817717/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=1097314740198817717' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1097314740198817717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1097314740198817717'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/05/gif-vs-png.html' title='Чего мне не хватает в GIF'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-8344175652521870194</id><published>2009-05-11T16:27:00.000+04:00</published><updated>2009-05-31T13:11:20.084+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='софт'/><title type='text'>Жизнь с чистого листа . . .</title><content type='html'>Пришел сегодня домой и понял, что больше не в силах бороться с взбесившимся Installer-ом. То он iTunes обновлять не хочет, то удалить его не может. Эти постоянные глюки и висы всей системы.&lt;br /&gt;&lt;br /&gt;Оно в принципе понятно, 512МБ ОЗУ ( -64МБ для видюхи) ...&lt;br /&gt;Решил снести винду и поставить снова лицуху ХР.&lt;br /&gt;Обновил её по полной программе.&lt;br /&gt;&lt;br /&gt;Вот софт, установленный мною в первую очередь:&lt;span class=fullpost&gt;&lt;br /&gt;1) &lt;a href="http://www.google.com/chrome/"&gt;Google Chrome 1.0.154.65&lt;/a&gt;&lt;br /&gt;2) WinRAR 3.90 Beta 1&lt;br /&gt;3) Alcohol 120%&lt;br /&gt;4) &lt;a href="http://www.utorrent.com/"&gt;&amp;mu;Torrent 1.8.2&lt;/a&gt;&lt;br /&gt;5) &lt;a href="http://qip.ru/ru/pages/download_qip_ru/"&gt;QIP 2005, Build 8092&lt;/a&gt;&lt;br /&gt;6) &lt;a href="http://tversity.com/"&gt;TVersity Pro 1.5&lt;/a&gt;&lt;br /&gt;7) &lt;a href="http://free-av.com/"&gt;Avira AntiVir Desktop&lt;/a&gt;&lt;br /&gt;8) &lt;a href="http://www.codecguide.com/"&gt;K-Lite Codec Pack 4.8.2 Full&lt;/a&gt;&lt;br /&gt;9) &lt;a href="http://www.apple.com/itunes/download/"&gt;iTunes 8.1.1.10 + QuickTime 7.6&lt;/a&gt;&lt;br /&gt;10) &lt;a href="http://get.adobe.com/reader/?promoid=BUIGO"&gt;Adobe Reader 9.1&lt;/a&gt;&lt;br /&gt;11) &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;Java JRE 6 Update 13 + Java JDK 6 Update 13&lt;/a&gt;&lt;br /&gt;12) &lt;a href="http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp"&gt;Sony Ericsson SDK 2.5.0.3 for the Java™ ME Platform&lt;/a&gt;&lt;br /&gt;13) &lt;a href="http://www.dreamspark.ru/"&gt;MS Visual Studio 2008 (Free ISIC license)&lt;/a&gt;&lt;br /&gt;14) &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b8704100-0127-4d88-9b5d-896b9b388313&amp;DisplayLang=en"&gt;MSDN&lt;/a&gt;&lt;br /&gt;15) &lt;a href="http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm"&gt;Microsoft Platform SDK&lt;/a&gt;&lt;br /&gt;16) &lt;a href="http://www.qtsoftware.com/downloads"&gt;Qt SDK by Nokia v2009.02 (open source)&lt;/a&gt;&lt;br /&gt;17) &lt;a href="http://www.boost.org/"&gt;Boost C++ Libraries&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Вторая волна:&lt;br /&gt;1) &lt;a href="http://irfanview.com/index.htm"&gt;Irfan Viewer 4.23 + All plugins&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://notepad-plus.sourceforge.net/ru/site.htm"&gt;Notepad++ 5.3.1&lt;/a&gt;&lt;br /&gt;3) &lt;a href="http://ccollomb.free.fr/unlocker/"&gt;Unlocker 1.8.7&lt;/a&gt;&lt;br /&gt;4) &lt;a href="http://www.launchy.net/"&gt;Launchy 2.1.2&lt;/a&gt;&lt;br /&gt;5) &lt;a href="http://www.gamani.com/"&gt;Gif Movie Gear 4.2&lt;/a&gt;&lt;br /&gt;6) &lt;a href="http://www.half-open.com/"&gt;Half-open limit fix 4.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Под прицелом:&lt;br /&gt;1) &lt;a href="http://mpesch3.de1.cc/1by1.html"&gt;1by1 1.67&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://zabkat.com/x2lite.htm"&gt;[xplorer&lt;sup&gt;2&lt;/sup&gt;]&lt;/a&gt; - удалил уже&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-8344175652521870194?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/8344175652521870194/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=8344175652521870194' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8344175652521870194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8344175652521870194'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/05/blog-post.html' title='Жизнь с чистого листа . . .'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-7361212447245821155</id><published>2009-05-09T15:37:00.000+04:00</published><updated>2009-05-19T22:36:01.364+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='орфография'/><category scheme='http://www.blogger.com/atom/ns#' term='скрипт'/><title type='text'>Orphus [Орфус]</title><content type='html'>Установил себе в блог систему Orphus. Теперь Вы можете ещё удобнее сообщать мне об ошибках, которые мозолят вам глаза. Вам нужно лишь выделить мышкой ошибку и нажать Ctrl+Enter. Далее выскочит диалог Orphus-a.&lt;br /&gt;&lt;br /&gt;Предложенный системой скрипт, я скачивать не стал.&lt;br /&gt;Вместо этого, вставил в шаблон следующий код:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&amp;lt;script src='http://orphus.ru/ru/orphus.js?email=%210ka6aag@amlic.mo' type='text/javascript'/&amp;gt;&lt;/pre&gt;&lt;br /&gt;То есть, скопировал ссылку на генерацию скрипта.&lt;br /&gt;Здесь и началось кое-что интересненькое . . .&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;Обратите внимание на ссылку:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;http://orphus.ru/ru/orphus.js?email=%210ka6aag@amlic.mo&lt;/pre&gt;&lt;br /&gt;Уж очень параметр, похож на мой майл: k06aaa@gmail.com&lt;br /&gt;(Примечание: %21 == '!')&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;0ka6aag@amlic.mo&lt;br /&gt;k06aaa@gmail.com&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;В коде генерированного скрипта (строка №2):&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;var _2 = "!0ka6aag@amlic.mo";&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Забавно получается, зачем-то поменяли местами каждые 2 буквы.&lt;br /&gt;Далее следуем за переменной "_2":&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;var _12 = function()&lt;br /&gt;{&lt;br /&gt;   if(_2.substr(0,1) == "!")&lt;br /&gt;   {&lt;br /&gt;      _2 = _2.substr(1).replace(/(.)(.)/g,"$2$1");&lt;br /&gt;   }&lt;br /&gt;   ...&lt;br /&gt;};&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;А нафига это было нужно? Я в раздумьях.&lt;br /&gt;Анализ кода, более ничего необычного не выделил.&lt;br /&gt;Всё как и ожидалось, эвент на нажатие клавиш, сравнение с Ctrl+Enter и т.д. &lt;br /&gt;&lt;br /&gt;&lt;img src='http://orphus.ru/ru/img/Oleg_Fadjarov_btn1.gif'/&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-7361212447245821155?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/7361212447245821155/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=7361212447245821155' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7361212447245821155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7361212447245821155'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/05/orphus.html' title='Orphus [Орфус]'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3079677603348260031</id><published>2009-05-05T13:13:00.001+04:00</published><updated>2009-06-03T21:16:20.759+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='глюк'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='trolltech'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><title type='text'>Qt 4.5.1 и кириллица в URL</title><content type='html'>&lt;h4&gt;1. Суть проблемы&lt;/h4&gt;&lt;br /&gt;Столкнулся с проблемой кириллицы в Qt SDK by Nokia 2009.02 (open source) под Windows. Ссылки на файлы с кириллическими именами не работают. Приведу пример неработающего кода и способ решения проблемы.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;h4&gt;2. Неработающий код&lt;/h4&gt;&lt;br /&gt;Сперва укажем в какой кодировке мы набираем исходный код. У меня это Win-1251.&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;QTextCodec::setCodecForTr(&lt;br /&gt;   QTextCodec::codecForName("Windows-1251") );&lt;/pre&gt;&lt;br /&gt;Создадим экземпляр класса QLabel, на него положим HTML ссылку:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;QLabel label( tr("&amp;lt;a href=\"файлик.doc\"&amp;gt;link&amp;lt;/a&amp;gt;") );&lt;/pre&gt;&lt;br /&gt;Включим автоматическое открытие ссылок через QDesktopServices::openUrl():&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;label.setOpenExternalLinks( true );&lt;/pre&gt;&lt;br /&gt;Ну и само собой, при клике по ссылке ничего не происходит. Совсем ничего. (Или я что-то не так делаю?)&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;3. Вариант решения проблемы&lt;/h4&gt;&lt;br /&gt;Как вариант, создадим свой слот обработки клика по линку:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;void linkClick(QString str)&lt;br /&gt;{&lt;br /&gt;   QString path = "file:///" + qApp-&amp;gt;arguments()[0];&lt;br /&gt;   path = path.left( path.lastIndexOf('\\')+1 );&lt;br /&gt;   QDesktopServices::openUrl( path + str );&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Соединяем сигнал label-а с нашим слотом:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;connect( label, SIGNAL(linkActivated(QString),&lt;br /&gt;         this, SLOT(linkClick(QString)) );&lt;/pre&gt;&lt;br /&gt;Не забываем выключить автоматическое открытие линков:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;label.setOpenExternalLinks( false );&lt;/pre&gt;&lt;br /&gt;Теперь при клике по ссылке будет вызываться наша функция. И теперь всё работает.&lt;br /&gt;&lt;br /&gt;Весьма странно. Почему без "file:///" не работает? почему не работает по относительному пути?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Зарегистрирован в &lt;a href="http://www.qtsoftware.com/developer/task-tracker"&gt;task-tracker&lt;/a&gt; как "the issue number #253955".&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3079677603348260031?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3079677603348260031/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3079677603348260031' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3079677603348260031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3079677603348260031'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/05/qt-451-url.html' title='Qt 4.5.1 и кириллица в URL'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5656990130988027744</id><published>2009-04-29T14:09:00.012+04:00</published><updated>2010-10-31T19:53:55.589+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='переменные'/><category scheme='http://www.blogger.com/atom/ns#' term='ArtMoney'/><category scheme='http://www.blogger.com/atom/ns#' term='хакинг'/><category scheme='http://www.blogger.com/atom/ns#' term='безопасность'/><category scheme='http://www.blogger.com/atom/ns#' term='защита'/><title type='text'>Переменные цвета хаки</title><content type='html'>&lt;h4&gt;1. Введение в проблему&lt;/h4&gt;&lt;br /&gt;Разрабатывая очередное приложение/игру, задумываетесь ли вы о приватности ваших переменных? Что если переменные, которые служили вам верой и правдой в процессе отладки и тестирования, начнут вдруг ни с того ни с сего менять свои значения прямо на этапе выполнения? Сами по себе они вряд ли станут это делать. Кому-то это должно быть выгодно. В играх, например, всегда присутствует некий критерий продвинутости игрока (очки, баллы, монетки, время и т.д.). Всегда найдутся желающие "накрутить" себе баллов.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;h4&gt;2. Какие у нас варианты?&lt;/h4&gt;&lt;br /&gt;Во-первых, можно защитить память своего приложения средствами ОС или, например, отслеживая присутствие в системе процессов читерских программ. Считаю этот способ крайне слабым. Всегда найдутся программы, которые раскурочат вас (запустят в режиме отладки, м.б. с заниженным приоритетом, прикинутся дровами и т.д.).&lt;br /&gt;&lt;br /&gt;Во-вторых, существуют методы по шифрованию данных, хранимых в переменных. Если в шифровании нет проверки на валидность, то методом проб и ошибок всё равно подбирается желанное число очков. Если проверка на валидность данных присутствует, то очки на глаз уже не заполучить. А вот заморозить шифрованную переменную можно. А если это жизни игрока? Нехорошо получается . . .&lt;br /&gt;&lt;br /&gt;В-третьих, есть методы для разделения переменных в пространстве. Суть метода состоит в том, чтобы не позволить читерской программе найти в памяти ваши переменные. Поиск в памяти основывается на отлове изменений значений переменных. Необходим метод для сокрытия значений переменных в пространстве. Один из таких методов я описываю далее.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;3. &amp;quot;Беспалевно&amp;quot; меняем значение&lt;/h4&gt;&lt;br /&gt;Например, будем прятать от читеров целые числа. Создадим класс, в последующем он заменит нам тип &lt;i&gt;int&lt;/i&gt;. Будем хранить необходимое значение в двух или трёх переменных. Их сумма и будет "значением". При изменении значения мы будем менять лишь одну из переменных. Изменяемую переменную выберем случайным образом.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#008000"&gt;// код не проверен, написан с телефона&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt; int_3&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; vect[3];&lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int_3(&lt;font color="#0000ff"&gt;int&lt;/font&gt; value = 0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// Сумма всех элементов,&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// кроме указанного&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; sum(&lt;font color="#0000ff"&gt;int&lt;/font&gt; exclude = -1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;int&lt;/font&gt; s = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=0; i&amp;#38;lt;3; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (i != exclude)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s += vect[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; s;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;operator&lt;/font&gt; &lt;font color="#0000ff"&gt;int&lt;/font&gt;() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; sum();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (&lt;font color="#0000ff"&gt;int&lt;/font&gt; value) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;int&lt;/font&gt; index = rand() % 3;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vect[index] = value - sum(index);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; + (&lt;font color="#0000ff"&gt;int&lt;/font&gt; value) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() + value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; - (&lt;font color="#0000ff"&gt;int&lt;/font&gt; value) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() - value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; * (&lt;font color="#0000ff"&gt;int&lt;/font&gt; value) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() * value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; / (&lt;font color="#0000ff"&gt;int&lt;/font&gt; value) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() / value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// ...&lt;/font&gt;&lt;br /&gt;};&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1" color="gray"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font size="1" color="gray"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;!--// код не проверен, написан с телефонаclass int_3{int vect[3];public:int_3(int value = 0) {operator = (value);}// Сумма всех элементов,// кроме указанногоint sum(int exclude = -1) {int s = 0;for (int i=0; i&lt;3; i++)if (i != exclude)s += vect[i];return s;}operator int() {return sum();}int operator = (int value) {int index = rand() % 3;vect[index] = value - sum(index);return value;}int operator + (int value) {return operator = (sum() + value);}int operator - (int value) {return operator = (sum() - value);}int operator * (int value) {return operator = (sum() * value);}int operator / (int value) {return operator = (sum() / value);}// ...};--&gt;&lt;br /&gt;При выполнении любой из операции изменяется значение ровно одной ячейки памяти. Но это ещё не всё: тот, кто знает наш способ, может придумать, как нас всё-таки обмануть.&lt;br /&gt;&lt;br /&gt;- Например, при изменении значения, всегда меняется значение 12-ти байтового числа (смежные поля класса лежат рядом в памяти). Изменения 12-ти символьной строки можно отловить . . .&lt;br /&gt;&lt;br /&gt;- Можно хранить три частичных значения в динамической памяти. Тогда у нас будет массив из указателей. Сам массиив не изменяется, изменяются ячейки памяти, которые располагаются отнюдь не рядом. При желании можно "специально" между выделениями памяти под наши переменные выделять память под относительно большие массивы, а потом просто её высвобождать, чтоб уж точно переменные лежали в разных местах.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Масштабируемость алгоритма налицо - можно завести вектор подлиннее, а ещё лучше сделать длину динамической. Ну и, конечно же, оформить не классом, а шаблоном.&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;Главное не обращать внимания на переполнение разрядности чисел при сложении и вычитании. Не верите? Вот Вам пример:&lt;br /&gt;a,b,c - элементы вектора (0..9)&lt;br /&gt;x - загружаемое значение&lt;br /&gt;Будем считать что генератор случайных чисел выдаёт следующую последовательность:&lt;br /&gt;0 1 2 0 1 2 0 1 2 . . .&lt;br /&gt;&lt;pre style="font-size:10pt"&gt;a b c x&lt;br /&gt;0 0 0 5&lt;br /&gt;5 0 0 8&lt;br /&gt;5 3 0 2&lt;br /&gt;5 3 4 5&lt;br /&gt;8 3 4 1&lt;br /&gt;8 9 4 0&lt;br /&gt;8 9 3 0&lt;br /&gt;8 9 3 0&lt;br /&gt;8 9 3 0&lt;br /&gt;. . . .&lt;/pre&gt;&lt;br /&gt;&lt;h4&gt;4. Реализация всех выдуманных примочек&lt;/h4&gt;&lt;br /&gt;В результате у меня получился вот такой вот шаблончик:&lt;br /&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#008000"&gt;// Copyright by [k06a] © 2009&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;#60;iostream&amp;#62;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; &lt;font color="#0000ff"&gt;namespace&lt;/font&gt; std;&lt;br /&gt;&lt;br /&gt;template&amp;#60;&lt;font color="#0000ff"&gt;class&lt;/font&gt; T&amp;#62; &lt;font color="#0000ff"&gt;class&lt;/font&gt; int_x&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; T **vect;&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;int&lt;/font&gt; size;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;:&lt;br /&gt;&amp;nbsp; &lt;font color="#008000"&gt;// Конструкторы&lt;/font&gt;&lt;br /&gt;&amp;nbsp; int_x( &lt;font color="#0000ff"&gt;int&lt;/font&gt; value_ = 0, &lt;font color="#0000ff"&gt;int&lt;/font&gt; size_ = 2, &lt;font color="#0000ff"&gt;int&lt;/font&gt; scrambler = 0 ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;init( value_, size_, scrambler );&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; int_x( int_x &amp;#38; &lt;font color="#0000ff"&gt;var&lt;/font&gt; ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;init( &lt;font color="#0000ff"&gt;var&lt;/font&gt;.sum(), &lt;font color="#0000ff"&gt;var&lt;/font&gt;.size );&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;font color="#008000"&gt;// Для работы: int_x&amp;#60;int&amp;#62; var = 5;&lt;/font&gt;&lt;br /&gt;&amp;nbsp; int_x( int_x &lt;font color="#0000ff"&gt;const&lt;/font&gt; &amp;#38; &lt;font color="#0000ff"&gt;var&lt;/font&gt; ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;init( &lt;font color="#0000ff"&gt;var&lt;/font&gt;.sum(), &lt;font color="#0000ff"&gt;var&lt;/font&gt;.size );&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; ~int_x() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;deinit();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; int_x &amp;#38; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (int_x &lt;font color="#0000ff"&gt;var&lt;/font&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;deinit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;init( &lt;font color="#0000ff"&gt;var&lt;/font&gt;.sum(), &lt;font color="#0000ff"&gt;var&lt;/font&gt;.size );&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#008000"&gt;// [Де]Инициализация&lt;/font&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;void&lt;/font&gt; init(&lt;font color="#0000ff"&gt;int&lt;/font&gt; value_ = 0, &lt;font color="#0000ff"&gt;int&lt;/font&gt; size_ = 2, &lt;font color="#0000ff"&gt;int&lt;/font&gt; scrambler = 0)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;size = size_;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vect = &lt;font color="#0000ff"&gt;new&lt;/font&gt; T* [size_];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;char&lt;/font&gt; *buf = NULL;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=0; i&amp;#60;size; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (scrambler)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buf = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#0000ff"&gt;char&lt;/font&gt; [rand()%scrambler];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vect[i] = &lt;font color="#0000ff"&gt;new&lt;/font&gt; T;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (scrambler)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delete [] buf;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (value_);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;void&lt;/font&gt; deinit()&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=0; i&amp;#60;size; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete vect[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delete [] vect;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vect = NULL;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#008000"&gt;// Сумма всех эллементов, кроме указанного&lt;/font&gt;&lt;br /&gt;&amp;nbsp; T sum(&lt;font color="#0000ff"&gt;int&lt;/font&gt; exclude = -1) &lt;font color="#0000ff"&gt;const&lt;/font&gt;&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;T summa = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=0; i&amp;#60;size; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (i != exclude)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;summa += *vect[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; summa;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#008000"&gt;// Приведение типа&lt;/font&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; T () {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; sum();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#008000"&gt;// Основной оператор присваивания&lt;/font&gt;&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (T value) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;int&lt;/font&gt; index = rand() % size;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*vect[index] = value - sum(index);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; value;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; + (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() + value); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; - (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() - value); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; * (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() * value); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; / (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() / value); }&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; += (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() + value); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; -= (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() - value); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; *= (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() * value); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; /= (T value) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum() / value); }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; ++ () { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum()+1); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; -- () { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum()-1); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; ++ (&lt;font color="#0000ff"&gt;int&lt;/font&gt; unused) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum()+1); }&lt;br /&gt;&amp;nbsp; T &lt;font color="#0000ff"&gt;operator&lt;/font&gt; -- (&lt;font color="#0000ff"&gt;int&lt;/font&gt; unused) { &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;operator&lt;/font&gt; = (sum()-1); }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;void&lt;/font&gt; print()&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=0; i&amp;#60;size; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;#60;&amp;#60; *vect[i] &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;" "&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;#60;&amp;#60; endl;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;void&lt;/font&gt; print_where()&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=0; i&amp;#60;size; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;#60;&amp;#60; vect[i] &amp;#60;&amp;#60; endl;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;};&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1" color="gray"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font size="1" color="gray"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;!--// Copyright by [k06a] © 2009#include &lt;iostream&gt;&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;template&lt;class T&gt; class int_x&lt;br /&gt;{&lt;br /&gt;T **vect;&lt;br /&gt;int size;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;// Конструкторы&lt;br /&gt;int_x( int value_ = 0, int size_ = 2, int scrambler = 0 ) {&lt;br /&gt;init( value_, size_, scrambler );&lt;br /&gt;}&lt;br /&gt;int_x( int_x &amp; var ) {&lt;br /&gt;init( var.sum(), var.size );&lt;br /&gt;}&lt;br /&gt;// Для работы: int_x&lt;int&gt; var = 5;&lt;br /&gt;int_x( int_x const &amp; var ) {&lt;br /&gt;init( var.sum(), var.size );&lt;br /&gt;}&lt;br /&gt;~int_x() {&lt;br /&gt;deinit();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int_x &amp; operator = (int_x var) {&lt;br /&gt;deinit();&lt;br /&gt;init( var.sum(), var.size );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// [Де]Инициализация&lt;br /&gt;void init(int value_ = 0, int size_ = 2, int scrambler = 0)&lt;br /&gt;{&lt;br /&gt;size = size_;&lt;br /&gt;vect = new T* [size_];&lt;br /&gt;char *buf = NULL;&lt;br /&gt;&lt;br /&gt;for (int i=0; i&lt;size; i++){if (scrambler)buf = new char [rand()%scrambler];vect[i] = new T;if (scrambler)delete [] buf;}operator = (value_);}void deinit(){for (int i=0; i&lt;size; i++)delete vect[i];delete [] vect;vect = NULL;}// Сумма всех эллементов, кроме указанногоT sum(int exclude = -1) const{T summa = 0;for (int i=0; i&lt;size; i++)if (i != exclude)summa += *vect[i];return summa;}// Приведение типаoperator T () {return sum();}// Основной оператор присваиванияT operator = (T value) {int index = rand() % size;*vect[index] = value - sum(index);return value;}T operator + (T value) { return operator = (sum() + value); }T operator - (T value) { return operator = (sum() - value); }T operator * (T value) { return operator = (sum() * value); }T operator / (T value) { return operator = (sum() / value); }T operator += (T value) { return operator = (sum() + value); }T operator -= (T value) { return operator = (sum() - value); }T operator *= (T value) { return operator = (sum() * value); }T operator /= (T value) { return operator = (sum() / value); }T operator ++ () { return operator = (sum()+1); }T operator -- () { return operator = (sum()-1); }T operator ++ (int unused) { return operator = (sum()+1); }T operator -- (int unused) { return operator = (sum()-1); }void print(){for (int i=0; i&lt;size; i++)cout &lt;&lt; *vect[i] &lt;&lt; " ";cout &lt;&lt; endl;}void print_where(){for (int i=0; i&lt;size; i++)cout &lt;&lt; vect[i] &lt;&lt; endl;}};--&gt;&lt;br /&gt;&lt;br /&gt;Пользуемся нашим шаблоном вот так:&lt;br /&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;int_x&amp;#60;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&amp;#62; a = 0, b = 7;&lt;br /&gt;&lt;font color="#008000"&gt;// Далее a и b используются как&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// обычные переменные типа int&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;int_x&amp;#60;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&amp;#62; x(0,10,8192);&lt;br /&gt;&lt;font color="#008000"&gt;// Переменная x имеет значение 0,&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// хранится в 10 различных переменных,&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// между созданием каждого из элементов вектора&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// в памяти выделялось от 0 до 8192 байт.&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// Далее переменной x пользуемся как int-ом&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1" color="gray"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font size="1" color="gray"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;!--int_x&lt;int&gt; a = 0, b = 7;&lt;br /&gt;// Далее a и b используются как&lt;br /&gt;// обычные переменные типа int&lt;br /&gt;&lt;br /&gt;int_x&lt;int&gt; x(0,10,8192);&lt;br /&gt;// Переменная x имеет значение 0,&lt;br /&gt;// хранится в 10 различных переменных,&lt;br /&gt;// между созданием каждого из элементов вектора&lt;br /&gt;// в памяти выделялось от 0 до 8192 байт.&lt;br /&gt;// Далее переменной x пользуемся как int-ом--&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;5. Наблюдаем за работой схемы&lt;/h4&gt;&lt;br /&gt;Выполним следующий код:&lt;br /&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;int_x&amp;#60;unsigned &lt;font color="#0000ff"&gt;short&lt;/font&gt; &lt;font color="#0000ff"&gt;int&lt;/font&gt;&amp;#62;&lt;br /&gt;&amp;nbsp; ab(0,5,4096), a = 3, b(5,3);&lt;br /&gt;ab = 1;&lt;br /&gt;&lt;br /&gt;cout &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;"Address of a : "&lt;/font&gt; &amp;#60;&amp;#60; endl; a.print_where();&lt;br /&gt;cout &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;"[ a == "&lt;/font&gt; &amp;#60;&amp;#60; a &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;" ]: "&lt;/font&gt;; a.print(); cout &amp;#60;&amp;#60; endl;&lt;br /&gt;cout &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;"Address of b : "&lt;/font&gt; &amp;#60;&amp;#60; endl; b.print_where();&lt;br /&gt;cout &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;"[ b == "&lt;/font&gt; &amp;#60;&amp;#60; b &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;" ]: "&lt;/font&gt;; b.print(); cout &amp;#60;&amp;#60; endl;&lt;br /&gt;cout &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;"Address of a^b : "&lt;/font&gt; &amp;#60;&amp;#60; endl; ab.print_where();&lt;br /&gt;cout &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;"[ a^b == "&lt;/font&gt; &amp;#60;&amp;#60; ab &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;" ]: "&lt;/font&gt;; ab.print(); cout &amp;#60;&amp;#60; endl;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=0; i&amp;#60;b; i++)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; ab *= a;&lt;br /&gt;&amp;nbsp; cout &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;"[ a^b == "&lt;/font&gt; &amp;#60;&amp;#60; ab &amp;#60;&amp;#60; &lt;font color="#A31515"&gt;" ]: "&lt;/font&gt;; ab.print();&lt;br /&gt;}&lt;br /&gt;cout &amp;#60;&amp;#60; ab &amp;#60;&amp;#60; endl;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1" color="gray"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font size="1" color="gray"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;!--int_x&lt;unsigned short int&gt;&lt;br /&gt;ab(0,5,4096), a = 3, b(5,3);&lt;br /&gt;ab = 1;&lt;br /&gt;&lt;br /&gt;cout &lt;&lt; "Address of a : " &lt;&lt; endl; a.print_where();cout &lt;&lt; "[ a == " &lt;&lt; a &lt;&lt; " ]: "; a.print(); cout &lt;&lt; endl;cout &lt;&lt; "Address of b : " &lt;&lt; endl; b.print_where();cout &lt;&lt; "[ b == " &lt;&lt; b &lt;&lt; " ]: "; b.print(); cout &lt;&lt; endl;cout &lt;&lt; "Address of a^b : " &lt;&lt; endl; ab.print_where();cout &lt;&lt; "[ a^b == " &lt;&lt; ab &lt;&lt; " ]: "; ab.print(); cout &lt;&lt; endl;for (int i=0; i&lt;b; i++){ab *= a;cout &lt;&lt; "[ a^b == " &lt;&lt; ab &lt;&lt; " ]: "; ab.print();}cout &lt;&lt; ab &lt;&lt; endl;--&gt;&lt;br /&gt;&lt;br /&gt;В результате выполнения видим:&lt;br /&gt;&lt;font face='courier' color='#c0c0c0'&gt;&lt;table bgcolor='black' width='100%' height='200'&gt;&lt;td&gt;Address of a :&lt;br /&gt;0x3e4810&lt;br /&gt;0x3e4820&lt;br /&gt;[ a == 3 ]: 65147 392&lt;br /&gt;&lt;br /&gt;Address of b :&lt;br /&gt;0x3e5098&lt;br /&gt;0x3e50a8&lt;br /&gt;0x3e4138&lt;br /&gt;[ b == 5 ]: 64693 400 448&lt;br /&gt;&lt;br /&gt;Address of a^b :&lt;br /&gt;0x3e4760&lt;br /&gt;0x3e50c0&lt;br /&gt;0x3e5280&lt;br /&gt;0x3e4798&lt;br /&gt;0x3e40d0&lt;br /&gt;[ a^b == 1 ]: 20672 21120 1 392 23352&lt;br /&gt;&lt;br /&gt;[ a^b == 3 ]: 20672 21120 1 392 23354&lt;br /&gt;[ a^b == 9 ]: 20678 21120 1 392 23354&lt;br /&gt;[ a^b == 27 ]: 20696 21120 1 392 23354&lt;br /&gt;[ a^b == 81 ]: 20696 21174 1 392 23354&lt;br /&gt;[ a^b == 243 ]: 20696 21174 163 392 23354&lt;br /&gt;243&lt;br /&gt;&lt;/td&gt;&lt;/table&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;Вместо операции сложения можно использовать операцию XOR.&lt;br /&gt;Будет чуть быстрее работать и немного запутанней.&lt;br /&gt;Я пожалуй остановлюсь на сложении))&lt;br /&gt;&lt;br /&gt;Ну вот и всё. Ничего страшного.&lt;br /&gt;Есть замечания, дополнения, идеи, комментарии?&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5656990130988027744?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5656990130988027744/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5656990130988027744' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5656990130988027744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5656990130988027744'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/04/blog-post_29.html' title='Переменные цвета хаки'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-4702358367757636896</id><published>2009-04-10T23:12:00.001+04:00</published><updated>2009-07-07T02:16:12.872+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MBR'/><category scheme='http://www.blogger.com/atom/ns#' term='MAC OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Виста и Хакинтош на одном диске.</title><content type='html'>Имеем на пк установленную висту, хотим поставить хакинтош и при включении выбирать одну из осей. Всё осложняется наличием лишь одного харда.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;b&gt;1)&lt;/b&gt; В первую очередь создаем праймари раздел для хакинтоша и форматируем его как FAT32. Устанавливаем на него хакинтош с переформатированием файловой системы в журналируемую HFS. Помечаем этот раздел как активный.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2)&lt;/b&gt; Теперь при включении наблюдаем ошибку "HFS+ Error". Загружаемся с установочного диска хакинтоша. Запускаем утилиту командной строки "Terminal". Набираем команду &lt;b&gt;fdisk -e /dev/rdisk0&lt;/b&gt; (в последней цифре указан номер физического диска, у меня он один и есть - нулевой). Набираем команду &lt;b&gt;p&lt;/b&gt;, чтобы увидеть таблицу разделов диска. Далее помечаем раздел с хакинтошем как активный: &lt;b&gt;f 2&lt;/b&gt; (у меня хакинтош на разделе 2). Набираем &lt;b&gt;write&lt;/b&gt; и &lt;b&gt;exit&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3)&lt;/b&gt; Теперь имеем загружающийся хакинтош. При загрузке нас просят выбрать раздел, с которого следует произвести загрузку. Хакинтош то работает, а виста откинулась.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4)&lt;/b&gt; Загружаемся с любого рекавери диска в Partition Magic. С его помощью делаем активным раздел с вистой. С остальных разделов флаг активности необходимо снять.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5)&lt;/b&gt; Берём любой установочный диск висты. Абсолютно любой, какая бы виста у вас ни была: на компе, в буке и т.д. Загружаемся с этого диска находим старую инсталляцию на диске и нажимаем восстановить/восстановить загрузчик.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6)&lt;/b&gt; Загружаемся опять в партишн мэджик и ставим активным только раздел с макосью.&lt;br /&gt;&lt;br /&gt;Имеем при загрузке выбор раздела с осью. Всё как и хотели. А теперь прикинем, почему нам пришлось так извращаться. Кто виноват? Началось всё с того что раздел с хакинтошем должен быть помечен как активный не поросто так, а по "волшебному" через фдиск, при этом он портит MBR, где прописывается виста. Затем "тупить" начинает виста, когда загрузочный диск не может найти предыдущую инсталляцию винды на неактивном разделе. Для этого мы и игрались с партишн мэджиком. В активном разделе уже виста найдёт установку и сможет починить загрузчик. Как вывод: установка раздела активным в fdisk и в Partition Magic - абсолютно разные вещи. Партишн мэджик делает это "более поверхностно".&lt;br /&gt;&lt;br /&gt;З.Ы.&lt;br /&gt;Если возникли проблемы/вопросы/комментарии, feel free to write comments))&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-4702358367757636896?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/4702358367757636896/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=4702358367757636896' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4702358367757636896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4702358367757636896'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/04/blog-post_10.html' title='Виста и Хакинтош на одном диске.'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-7458883997876088412</id><published>2009-04-08T11:33:00.003+04:00</published><updated>2011-06-02T14:29:37.573+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='перебор'/><category scheme='http://www.blogger.com/atom/ns#' term='сочетания'/><category scheme='http://www.blogger.com/atom/ns#' term='алогритм'/><category scheme='http://www.blogger.com/atom/ns#' term='выборка'/><title type='text'>Быстрый перебор всех сочетаний(выборок)</title><content type='html'>Возникла потребность в "быстром" алгоритме перебора всевозможных размещений K единиц в N разрядах. Немного погуглил, но так и не нашел алгоритмов без дважды вложенных циклов. А ведь хочется получить функцию для "выработки" следующей комбинации на основе предыдущей. Да и хранить единицы и нули желательно не в строках(побайтно), а в многоразрядных числах(побитно). &lt;span class=fullpost&gt;В этом случае, конечно, возникает вопрос разрядности чисел, как ограничение на параметр N ... тогда используем числа разрядности 64, 128, 256 бит и т.д. Например, можно воспользоваться классом big_int в составе библиотеки Boost. Прикинем на глаз всевозможные варианты размещения 3-ёх единиц в 5-ти разрядах и порядок перебора этих вариантов:&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style:italic; font-size:10pt;"&gt;1 1 1 0 0&lt;br /&gt;1 1 0 1 0&lt;br /&gt;1 1 0 0 1&lt;br /&gt;1 0 1 1 0&lt;br /&gt;1 0 1 0 1&lt;br /&gt;1 0 0 1 1&lt;br /&gt;0 1 1 1 0&lt;br /&gt;0 1 1 0 1&lt;br /&gt;0 1 0 1 1&lt;br /&gt;0 0 1 1 1&lt;/span&gt;&lt;/pre&gt;Итого 10 вариантов (число сочетаний из пяти по три). Визуально алгоритм выглядит как пробегающая слева направо единица. Опишем его формально с использованием рекурсии (в данном алгоритме использование рекурсии не желательно, но с ней "красивше"):&lt;br /&gt;&lt;b&gt;1)&lt;/b&gt; Если самый правый символ "0",&lt;br /&gt;то находим среди всех единиц самую правую и сдвигаем её на 1 позицию вправо.&lt;br /&gt;&lt;b&gt;2)&lt;/b&gt; Если самый правый символ "1",&lt;br /&gt;то отрубаем самый правый символ и отправляем полученную комбинацию (длины N-1 с K-1 единицами) на п.1 алгоритма. В полученном значении находим самую правую единицу и вписываем вырезанную ранее единицу сразу после неё.&lt;br /&gt;&lt;br /&gt;При хранении комбинации в многоразрядных переменных нам понадобятся следующие операции:&lt;br /&gt;&lt;b&gt;а)&lt;/b&gt; Операция определения значения младшего разряда&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style:italic; font-size:10pt;"&gt;(a &amp; 1)&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;б)&lt;/b&gt; Операция сдвига вправо самой младшей единицы, с неприкосновенностью более старших разрядов.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style:italic; font-size:10pt;"&gt;int shiftLast1(int a) {&lt;br /&gt;    return ((a-1) ^ ((a^(a-1)) &gt;&gt; 2));&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;в)&lt;/b&gt; Операция дописывания единицы справа от самой младшей единицы.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style:italic; font-size:10pt;"&gt;int add1AfterLast1(int a) {&lt;br /&gt;    return ( a | ( ((a^(a-1)) + 1) &gt;&gt; 2 ) );&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Теперь метод генерации первой комбинации. K единиц сдвигаются вправо на (N-K) позиций.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style:italic; font-size:10pt;"&gt;int firstSoch(int n, int k) {&lt;br /&gt;    return ( ((1 &lt;&lt; k) - 1) &lt;&lt; (n - k) );&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Главный метод для вычисления комбинации реализует описаный нами алгоритм:&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style:italic; font-size:10pt;"&gt;int nextSoch(int a)&lt;br /&gt;{&lt;br /&gt;    // в случае последней комбинации вернём нуль&lt;br /&gt;    if ((a &amp; (a+1)) == 0)&lt;br /&gt;    return 0;&lt;br /&gt;&lt;br /&gt;    if (a &amp; 1)&lt;br /&gt;        return add1AfterLast1( nextSoch(a &gt;&gt; 1) &lt;&lt; 1 );&lt;br /&gt;    else&lt;br /&gt;        return shiftLast1(a);&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;З.Ы.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;1)&lt;/b&gt; Вместо функций (б) и (в) можно использовать макросы. Думаю функции с одним лишь ретурном компилятор включает "инлайн", тогда разницы с "дефайном" в принципе и нет. (Аккуратнее с вложенным вызовом макросов! - напоролся однако)&lt;br /&gt;&lt;b&gt;2)&lt;/b&gt; Аккуратнее с типами констант:&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style:italic; font-size:10pt;"&gt;(1 &lt;&lt; 48) &lt;b&gt;не равно&lt;/b&gt; (0x01000000000000)&lt;br /&gt;(__int64(1) &lt;&lt; 48) &lt;b&gt;равно&lt;/b&gt; (0x01000000000000)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;З.З.Ы.&lt;/b&gt;&lt;br /&gt;Если алгоритм вам пригодился или вы имеете интересные замечания/комментарии, как говорится, feel free to comment . . .&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-7458883997876088412?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/7458883997876088412/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=7458883997876088412' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7458883997876088412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7458883997876088412'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/04/blog-post_08.html' title='Быстрый перебор всех сочетаний(выборок)'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-4830934076904101603</id><published>2009-03-08T22:34:00.000+03:00</published><updated>2009-03-08T22:35:53.248+03:00</updated><title type='text'>Новый линк</title><content type='html'>Самый короткий линк сюда: &lt;a href="http://www.➡.ws/k06a"&gt;www.➡.ws/k06a&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-4830934076904101603?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/4830934076904101603/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=4830934076904101603' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4830934076904101603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/4830934076904101603'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2009/03/blog-post.html' title='Новый линк'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-8507021592216570644</id><published>2008-12-24T20:30:00.000+03:00</published><updated>2009-05-31T13:11:57.560+04:00</updated><title type='text'>QR-Коды</title><content type='html'>Намутил прикольные коды с помощью &lt;a href="http://mojiq.kazina.com/"&gt;http://mojiq.kazina.com/&lt;/a&gt;:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://lh6.ggpht.com/_sKX69jB94Rc/SWx8T8r6QGI/AAAAAAAACEs/cRoxV4-1nyI/s800/%5Bk06a%5D%27s%20Mail.png"/&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://lh6.ggpht.com/_sKX69jB94Rc/SWx8D87qq4I/AAAAAAAACEk/qjUnxRR7dd4/s800/%5Bk06a%5D%27s%20Blog.png"/&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-8507021592216570644?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/8507021592216570644/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=8507021592216570644' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8507021592216570644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/8507021592216570644'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/12/portable-pe.html' title='QR-Коды'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_sKX69jB94Rc/SWx8T8r6QGI/AAAAAAAACEs/cRoxV4-1nyI/s72-c/%5Bk06a%5D%27s%20Mail.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-2794793235195361698</id><published>2008-12-07T22:54:00.000+03:00</published><updated>2009-06-03T21:14:49.735+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='vkontakte'/><title type='text'>Flash: Amateurs Lega Calcio Serie A</title><content type='html'>Недавно закончил работу над flash-приложением с использованием vkontakte API. Все необходимые функции реализованы, сейчас жду лишь баг-репортов пользователей (а их порядка 50-100 в день) для исправления недостатков. Все данные, включая имена команд, хранятся на сервере вконтакте и являются настраиваемыми. Больше всего напрягло ограничение на 3 запроса в секунду, да и вообще работа с запросами. Правда об этом я уже писал в предыдущем посте.&lt;br /&gt; &lt;br /&gt;Адрес страницы с приложением: &lt;a href="http://vkontakte.ru/apps.php?act=s&amp;id=345926&amp;mid=419200"&gt;Amateurs Lega Calcio Serie A&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-2794793235195361698?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/2794793235195361698/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=2794793235195361698' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/2794793235195361698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/2794793235195361698'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/12/flash-amateurs-lega-calcio-serie.html' title='Flash: Amateurs Lega Calcio Serie A'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-7251054711444043460</id><published>2008-11-22T23:22:00.000+03:00</published><updated>2009-06-22T14:10:29.911+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='vkontakte'/><title type='text'>AS3 + VKontakte API</title><content type='html'>&lt;div align='justify' style='text-indent: 40px;'&gt;Давненько я не писал сюда ничего. На днях решил попробовать писать на AS3 (Action Script 3) в среде Adobe Flash CS3 с использованием "ВКонтакте API". Помучавшись с запросами к api.vkontakte.ru нашёл классы, призванные облегчить нам общение с ВКонтактом: &lt;a href="http://code.google.com/p/vkontakte-as3/"&gt;vkontakte-as3&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Всё бы хорошо, если не ограничение на 3 запроса в секунду . . . Классы, кстати вовсе не учитывают этого ограничения и лупят все запросы подряд. Написал простенький класс для распределения запросов по времени:&lt;/div&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;import flash.utils.*;&lt;br /&gt;package main&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;import ru.vkontakte.VKApp;&lt;br /&gt; &lt;br /&gt;&amp;nbsp;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; TimeMgr&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;var&lt;/font&gt; vk:VKApp = &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;var&lt;/font&gt; isWaiting:Boolean = &lt;font color="#0000ff"&gt;false&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;var&lt;/font&gt; prePreLastTime:Number = 0;&amp;nbsp;&lt;font color="#008000"&gt;// PrePreLast query time&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;var&lt;/font&gt; preLastTime:Number = 0;&amp;nbsp; &lt;font color="#008000"&gt;// PreLast query time&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;var&lt;/font&gt; lastTime:Number = 0;&amp;nbsp; &lt;font color="#008000"&gt;// Last query time&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;var&lt;/font&gt; arr:Array = &lt;font color="#0000ff"&gt;new&lt;/font&gt; Array();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;var&lt;/font&gt; realFunc:Function = &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;function&lt;/font&gt; TimeMgr(vk_:VKApp) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vk = vk_;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;function&lt;/font&gt; addQuery( ... args):&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr.push(args);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (isWaiting == &lt;font color="#0000ff"&gt;false&lt;/font&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isWaiting = &lt;font color="#0000ff"&gt;true&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendQuery(arr[0]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;function&lt;/font&gt; justReleased(res:XML)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// Если ошибка&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; ((res.name() != &lt;font color="#A31515"&gt;'response'&lt;/font&gt;) &amp;#38;&amp;#38;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(res.toString().indexOf(&lt;font color="#A31515"&gt;'Too many'&lt;/font&gt;) == 0))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(sendQuery, 1000, arr[0]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// Отправка по месту назначения&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (realFunc != &lt;font color="#0000ff"&gt;null&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(realFunc, 0, res);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// Отправка следущего запроса из очереди&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr.shift();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (arr.length &amp;#62; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendQuery(arr[0]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isWaiting = &lt;font color="#0000ff"&gt;false&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;function&lt;/font&gt; sendQuery(arg:Array)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// Куда передать ответ&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (arg[0] == vk.getVariable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;realFunc = arg[2];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;else&lt;/font&gt; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (arg[0] == vk.putVariable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;realFunc = arg[3];&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;var&lt;/font&gt; t:Number = (&lt;font color="#0000ff"&gt;new&lt;/font&gt; Date()).time;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (t - prePreLastTime &amp;#62;= 1500) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (arg[0] == vk.getVariable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vk.getVariable(arg[1], justReleased);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;else&lt;/font&gt; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (arg[0] == vk.putVariable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vk.putVariable(arg[1], arg[2], justReleased);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;font color="#0000ff"&gt;else&lt;/font&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (arg[0] == vk.getVariable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout( arg[0], 1500 - (t - prePreLastTime),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arg[1], justReleased);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;else&lt;/font&gt; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (arg[0] == vk.putVariable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout( arg[0], 1500 - (t - prePreLastTime),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arg[1], arg[2], justReleased);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prePreLastTime = preLastTime;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;preLastTime = lastTime;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastTime = t;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1" color="gray"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font size="1" color="gray"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;!--import flash.utils.*;&lt;br /&gt;package main&lt;br /&gt;{&lt;br /&gt;  import ru.vkontakte.VKApp;&lt;br /&gt; &lt;br /&gt;  public class TimeMgr&lt;br /&gt;  {&lt;br /&gt;    public var vk:VKApp = null;&lt;br /&gt;    private var isWaiting:Boolean = false;&lt;br /&gt;    private var prePreLastTime:Number = 0;  // PrePreLast query time&lt;br /&gt;    private var preLastTime:Number = 0;   // PreLast query time&lt;br /&gt;    private var lastTime:Number = 0;   // Last query time&lt;br /&gt;    private var arr:Array = new Array();&lt;br /&gt;    private var realFunc:Function = null;&lt;br /&gt;  &lt;br /&gt;    public function TimeMgr(vk_:VKApp) {&lt;br /&gt;      vk = vk_;&lt;br /&gt;    }&lt;br /&gt;  &lt;br /&gt;    public function addQuery( ... args):void&lt;br /&gt;    {&lt;br /&gt;      arr.push(args);&lt;br /&gt;      if (isWaiting == false) {&lt;br /&gt;        isWaiting = true;&lt;br /&gt;        sendQuery(arr[0]);&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  &lt;br /&gt;    private function justReleased(res:XML)&lt;br /&gt;    {&lt;br /&gt;      // Если ошибка&lt;br /&gt;      if ((res.name() != 'response') &amp;&amp;&lt;br /&gt;        (res.toString().indexOf('Too many') == 0))&lt;br /&gt;      {&lt;br /&gt;        setTimeout(sendQuery, 1000, arr[0]);&lt;br /&gt;        return;&lt;br /&gt;      }&lt;br /&gt;   &lt;br /&gt;      // Отправка по месту назначения&lt;br /&gt;      if (realFunc != null)&lt;br /&gt;        setTimeout(realFunc, 0, res);&lt;br /&gt;   &lt;br /&gt;      // Отправка следущего запроса из очереди&lt;br /&gt;      arr.shift();&lt;br /&gt;      if (arr.length &gt; 0)&lt;br /&gt;        sendQuery(arr[0]);&lt;br /&gt;      else&lt;br /&gt;        isWaiting = false;&lt;br /&gt;    }&lt;br /&gt;  &lt;br /&gt;    private function sendQuery(arg:Array)&lt;br /&gt;    {&lt;br /&gt;      // Куда передать ответ&lt;br /&gt;      if (arg[0] == vk.getVariable)&lt;br /&gt;        realFunc = arg[2];&lt;br /&gt;      else if (arg[0] == vk.putVariable)&lt;br /&gt;        realFunc = arg[3];&lt;br /&gt;   &lt;br /&gt;      var t:Number = (new Date()).time;&lt;br /&gt;      if (t - prePreLastTime &gt;= 1500) {&lt;br /&gt;        if (arg[0] == vk.getVariable)&lt;br /&gt;          vk.getVariable(arg[1], justReleased);&lt;br /&gt;        else if (arg[0] == vk.putVariable)&lt;br /&gt;          vk.putVariable(arg[1], arg[2], justReleased);&lt;br /&gt;      } else {&lt;br /&gt;        if (arg[0] == vk.getVariable)&lt;br /&gt;          setTimeout( arg[0], 1500 - (t - prePreLastTime),&lt;br /&gt;                      arg[1], justReleased);&lt;br /&gt;        else if (arg[0] == vk.putVariable)&lt;br /&gt;          setTimeout( arg[0], 1500 - (t - prePreLastTime),&lt;br /&gt;                      arg[1], arg[2], justReleased);&lt;br /&gt;      }&lt;br /&gt;  &lt;br /&gt;      prePreLastTime = preLastTime;&lt;br /&gt;      preLastTime = lastTime;&lt;br /&gt;      lastTime = t;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}--&gt;Теперь пишем код так:&lt;br /&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#008000"&gt;// Не забудьте инициализацию vk:VKApp&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; timer:TimeMgr = &lt;font color="#0000ff"&gt;new&lt;/font&gt; TimeMgr(vk);&lt;br /&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// Функция вызываемая при получении ответа севера&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt; vFunc(res:XML):&lt;font color="#0000ff"&gt;void&lt;/font&gt; {&lt;br /&gt;&amp;nbsp;trace(res.name() + &lt;font color="#A31515"&gt;':'&lt;/font&gt; + res.toString());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// &amp;#60;span style="font-style:italic;"&amp;#62;Было раньше:&amp;#60;/span&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// vk.putVariable(50, 'Test data', null);&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// vk.getVariable(50, vFunc);&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// &amp;#60;span style="font-style:italic;"&amp;#62;Стало теперь:&amp;#60;/span&amp;#62;&lt;/font&gt;&lt;br /&gt;timer.addQuery(vk.putVariable, 50, &lt;font color="#A31515"&gt;'Test data'&lt;/font&gt;, &lt;font color="#0000ff"&gt;null&lt;/font&gt;);&lt;br /&gt;timer.addQuery(vk.getVariable, 50, vFunc);&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1" color="gray"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font size="1" color="gray"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;!--// Не забудьте инициализацию vk:VKApp&lt;br /&gt;var timer:TimeMgr = new TimeMgr(vk);&lt;br /&gt;&lt;br /&gt;// Функция вызываемая при получении ответа севера&lt;br /&gt;function vFunc(res:XML):void {&lt;br /&gt;  trace(res.name() + ':' + res.toString());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// &lt;span style="font-style:italic;"&gt;Было раньше:&lt;/span&gt;&lt;br /&gt;// vk.putVariable(50, 'Test data', null);&lt;br /&gt;// vk.getVariable(50, vFunc);&lt;br /&gt;&lt;br /&gt;// &lt;span style="font-style:italic;"&gt;Стало теперь:&lt;/span&gt;&lt;br /&gt;timer.addQuery(vk.putVariable, 50, 'Test data', null);&lt;br /&gt;timer.addQuery(vk.getVariable, 50, vFunc);--&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Запросов можно делать теперь сколько угодно, менеджер сам распределит их по времени. А вообще считаю это ограничение слишком уж строгим, ну хоть 10 в секунду было бы уже нормально. Можно было бы делать достаточно динамичные игры. Например, сетевой змейке - 3 запроса в секунду явно перекрыли кислород . . .&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Полезные ссылки:&lt;/span&gt;&lt;br /&gt;1. &lt;a href="http://gorbatov.blogspot.com/2008/03/as3.html"&gt;Повышение производительности AS3 приложений&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://lab.polygonal.de/2007/05/10/bitwise-gems-fast-integer-math/"&gt;Bitwise gems - fast integer math&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-7251054711444043460?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/7251054711444043460/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=7251054711444043460' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7251054711444043460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7251054711444043460'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/11/blog-post.html' title='AS3 + VKontakte API'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-7188096301398808353</id><published>2008-10-19T23:17:00.000+04:00</published><updated>2008-11-03T11:14:59.133+03:00</updated><title type='text'>Лучший бесплатный софт для iPhone 3G</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Программы:&lt;/span&gt;&lt;br /&gt;1. &lt;a href="http://appshopper.com/social-networking/palringo-instant-messenger"&gt;Palringo Instant Messenger&lt;/a&gt; [&lt;a href="http://appshopper.com/link/palringo-instant-messenger"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;2. &lt;a href="http://appshopper.com/photography/panolab"&gt;PanoLab&lt;/a&gt; [&lt;a href="http://appshopper.com/link/panolab"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;3. &lt;a href="http://appshopper.com/productivity/younote"&gt;YouNote&lt;/a&gt; [&lt;a href="http://appshopper.com/link/younote"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;4. &lt;a href="http://appshopper.com/entertainment/stanza"&gt;Stanza&lt;/a&gt; [&lt;a href="http://appshopper.com/link/stanza"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Игры:&lt;/span&gt;&lt;br /&gt;1. &lt;a href="http://appshopper.com/games/galcon-lite"&gt;Galcon Lite&lt;/a&gt; [&lt;a href="http://appshopper.com/link/galcon-lite"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;2. &lt;a href="http://appshopper.com/games/square-master-lite"&gt;Square Master Lite&lt;/a&gt; [&lt;a href="http://appshopper.com/link/square-master-lite"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;3. &lt;a href="http://appshopper.com/games/gaia-lite"&gt;Gaia Lite&lt;/a&gt; [&lt;a href="http://appshopper.com/games/gaia-lite"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;4. &lt;a href="http://appshopper.com/games/labyrinth-lite-edition"&gt;Labyrinth Lite Edition&lt;/a&gt; [&lt;a href="http://appshopper.com/link/labyrinth-lite-edition"&gt;iTunes&lt;/a&gt;]&lt;br /&gt;5. &lt;a href="http://appshopper.com/games/jellycar"&gt;Jelly Car&lt;/a&gt; [&lt;a href="http://appshopper.com/link/jellycar"&gt;iTunes&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-7188096301398808353?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/7188096301398808353/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=7188096301398808353' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7188096301398808353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7188096301398808353'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/10/iphone-3g.html' title='Лучший бесплатный софт для iPhone 3G'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5078169065356345290</id><published>2008-10-19T00:03:00.000+04:00</published><updated>2009-06-03T21:15:19.090+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='глюк'/><category scheme='http://www.blogger.com/atom/ns#' term='m4r'/><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Глюк с рингтонами в iPhone</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Недавно столкнулся с таким глюком:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1.&lt;/span&gt; Перетакскиваю несколько мелодий m4r формата в iTunes-&gt;iPhone-&gt;Рингтоны&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.&lt;/span&gt; В iPhone вижу лишь 1 мелодию, но зато в нескольких копиях . . .&lt;br /&gt;&lt;br /&gt;Потыкался по гуглу с запросами "iPhone глюк с рингтонами" . . .&lt;br /&gt;10, 20, 30 минут . . . безрезультатно . . . методом тыка нашёл выход)))&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Решил проблему так:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1.&lt;/span&gt; Перетащите мелодии сначала в iTunes-&gt;Медиатека-&gt;Рингтоны&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.&lt;/span&gt; Из iTunes-&gt;Медиатека-&gt;Рингтоны перетащите в iTunes-&gt;iPhone-&gt;Рингтоны&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3.&lt;/span&gt; Все мелодии нормально видны из айфона.&lt;br /&gt;&lt;br /&gt;Не ожидал от Apple такой подставы, если честно . . .&lt;br /&gt;Интересно, была бы у меня эта проблема, если б я пользовался синхронизацией?&lt;br /&gt;&lt;br /&gt;И ещё при прослушивании рингтонов звук идёт не только из наушников,&lt;br /&gt;но и из динамиков . . . очень неудобно . . . не зря же я наушники воткнул?&lt;br /&gt;&lt;br /&gt;З.Ы.&lt;br /&gt;ТТХ: [iTunes 8.0.1 (Windows Vista 32)] + [iPhone 3G FW 2.1 (official)]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5078169065356345290?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5078169065356345290/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5078169065356345290' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5078169065356345290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5078169065356345290'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/10/iphone.html' title='Глюк с рингтонами в iPhone'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-2564752301344729101</id><published>2008-10-13T17:23:00.000+04:00</published><updated>2008-10-13T17:40:49.233+04:00</updated><title type='text'>The Neo Cube</title><content type='html'>&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_sKX69jB94Rc/SPNMM9Bk_iI/AAAAAAAAB7Y/VoAJgvZK5qo/s400/f4222n-216-br%5Bekm%5D189x200%5Bekm%5D.gif" border="0"/&gt;&lt;br /&gt;&lt;br /&gt;Достаточно непросто купить эту головоломку в России.&lt;br /&gt;Тем не менее появились несколько сайтов, где можно заказать Neo Cube.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Связанные ссылки:&lt;/span&gt;&lt;br /&gt;1. &lt;a href="http://theneocube.com"&gt;TheNeoCube.com&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://theneocube.ru"&gt;TheNeoCube.ru&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://magnetballs.ru"&gt;MagnetBalls.ru&lt;/a&gt;&lt;br /&gt;4. icq: 468-857-140 (1200р)&lt;br /&gt;&lt;br /&gt;Я купил в Magnet Balls за 1500р по почте, оплата наложенным платежом.&lt;br /&gt;Шарики хорошего качества, руки после игры железом не пахнут)))&lt;br /&gt;Остался доволен, правда он не такой уж и послушный как на видео)))&lt;br /&gt;Например, кубик ровно на 2 части разломить оо-очень непросто . . .&lt;br /&gt;А в кубик шарики сложить вообще не мог первые 20-30 минут)))))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-2564752301344729101?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/2564752301344729101/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=2564752301344729101' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/2564752301344729101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/2564752301344729101'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/10/neo-cube.html' title='The Neo Cube'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_sKX69jB94Rc/SPNMM9Bk_iI/AAAAAAAAB7Y/VoAJgvZK5qo/s72-c/f4222n-216-br%5Bekm%5D189x200%5Bekm%5D.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-7713272663844529357</id><published>2008-09-28T19:23:00.000+04:00</published><updated>2008-09-29T17:09:57.201+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='лингвистика'/><category scheme='http://www.blogger.com/atom/ns#' term='хирагана'/><category scheme='http://www.blogger.com/atom/ns#' term='изучение'/><category scheme='http://www.blogger.com/atom/ns#' term='японский'/><title type='text'>Японский::Хирагана</title><content type='html'>&lt;span style="font-style:italic;"&gt;Оптимисты учат английский. &lt;br /&gt;Пессимисты зубрят китайский.&lt;br /&gt;А реалисты осваивают автомат Калашникова... &lt;br /&gt;И только японский... изучают для души!&lt;br /&gt;&lt;div align="right"&gt;(© &lt;a href="http://www.komi.com/japanese/"&gt;www.komi.com&lt;/a&gt;)&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;Хира́гана (яп. 平仮名) — японская слоговая азбука, одна из составляющих японской письменности наряду с катаканой, кандзи, арабскими цифрами и ромадзи (латинским алфавитом). Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору. Знак каны может передавать гласный звук (например, а あ); сочетание согласного с последующей гласной (например, та た), либо назальный сонант н ん, который, в зависимости от контекста, может звучать как русские н, м, английский ng (IPA ŋ) или как французские назальные гласные.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;Полезные ссылки в порядке уменьшения релевантности&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;1. &lt;a href="http://www.komi.com/japanese/"&gt;http://www.komi.com/japanese/&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://kanji.dersu.ru"&gt;http://kanji.dersu.ru&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://nihongo.aikidoka.ru/"&gt;http://nihongo.aikidoka.ru/&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;Словари&lt;/span&gt;&lt;/span&gt;: Yarxi и Jardic&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;Незаменимое&lt;/span&gt;&lt;/span&gt;: &lt;a href="http://translate.google.ru"&gt;http://translate.google.ru&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-7713272663844529357?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/7713272663844529357/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=7713272663844529357' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7713272663844529357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/7713272663844529357'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/09/blog-post_28.html' title='Японский::Хирагана'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3503961890701770826</id><published>2008-09-21T13:12:00.000+04:00</published><updated>2009-05-31T13:10:19.580+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Хакинтош'/><category scheme='http://www.blogger.com/atom/ns#' term='MAC OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Kalyway'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><title type='text'>Kalyway MAC OS X 10.5.5 Update</title><content type='html'>У меня сейчас стоит Kalyway 10.5.3 Update  на Kalyway 10.5.2 Intel.&lt;br /&gt;Для последнего &lt;a href="http://developer.apple.com/iphone/program/download.html"&gt;iPhone SDK for iPhone OS 2.1 (9M2517)&lt;/a&gt; (1.38 GB),&lt;br /&gt;нужна система не ниже MAC OS X 10.5.4 . . .&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;1. Скачиваем &lt;a href="http://www.apple.com/support/downloads/macosx1055comboupdate.html"&gt;MAC OS X 10.5.5 Combo Update&lt;/a&gt;(601MB)&lt;br /&gt;&lt;br /&gt;2. Запускаем Terminal.app, пишу команды:&lt;br /&gt;&lt;div style="height:60px; overflow:scrolling; background:#ffffff; font-size:8pt;"&gt;&lt;pre&gt;&lt;code&gt;sudo -s&lt;br /&gt;*Ввожу пароль*&lt;br /&gt;while sleep 1; do rm -rf /System/Library/Extensions/AppleIntelCPUPowerManagement.kext; done&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Консоль оставляем открытой.&lt;br /&gt;&lt;br /&gt;3. Начинаем устанавливать скачанный MacOSXUpdCombo10.5.5.dmg (610MB) После окончания установки НЕ НАЖИМАЕМ перезагрузить.&lt;br /&gt;&lt;br /&gt;4. В консоли нажимаем Ctrl+C для остановки цикла, а затем открываем файл "/System/InstallAtStartup/scripts/1" в текстовом редакторе. Находим там строку "/System/Library/Extensions/Dont Steal Mac OS X.kext" и заменяем ее на "/System/Library/Extensions/dsmos.kext". Сохраняем и жмём на перезагрузку в  апдэйтере.&lt;br /&gt;&lt;br /&gt;5. При первом запуске система не дойдет до GUI (графической оболочки), что-то поделает и перезагрузится. Во второй раз запускайте с параметром "-v". После того, как вы увидите рабочий стол, можно, для профилактики, обновить кеш фреймворков, в консоли пишем: "sudo update_prebinding -debug -force -root /"&lt;br /&gt;&lt;br /&gt;У меня после обновления перестали работать тачпад, клаватура и сетевая карта. Щас вот ищу необходимые дрова . . .&lt;br /&gt;&lt;br /&gt;1) Починил работу Marvell Yukon 88E8055&lt;br /&gt;"IOPCISecondaryMath" = "0x10c11734"&lt;br /&gt;2) PS/2 тачпад и клавиатуру тоже починил с помощью архива:&lt;br /&gt;http://rapidshare.com/files/147454425/PS2_Batt_Working.zip.html&lt;br /&gt;(целый день искал его . . . в итоге через бут двд права проставлял)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3503961890701770826?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3503961890701770826/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3503961890701770826' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3503961890701770826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3503961890701770826'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/09/kalyway-1055-update.html' title='Kalyway MAC OS X 10.5.5 Update'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-1971812180730611492</id><published>2008-09-12T23:31:00.001+04:00</published><updated>2009-06-03T21:01:01.802+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='загадка'/><category scheme='http://www.blogger.com/atom/ns#' term='головоломка'/><category scheme='http://www.blogger.com/atom/ns#' term='логика'/><title type='text'>Загадка про сумму и произведение двух чисел.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Загадка:&lt;/span&gt;&lt;br /&gt;Некто загадал двум мудрецам два натуральных числа, больших 1, сумма которых меньше 100. Мудрецу &lt;span style="font-style:italic;"&gt;"С"&lt;/span&gt; Некто сообщил &lt;span style="font-style:italic;"&gt;сумму&lt;/span&gt; загаданных чисел, мудрецу &lt;span style="font-style:italic;"&gt;"П"&lt;/span&gt; - &lt;span style="font-style:italic;"&gt;произведение&lt;/span&gt;.&lt;br /&gt;Далее произошел следующий диалог:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;а) "П": Я не знаю, что это за числа.&lt;br /&gt;б) "С": Я заранее знал, что ты не знаешь, что это за числа.&lt;br /&gt;в) "П": Теперь я знаю, что это за числа.&lt;br /&gt;г) "С": Тогда и я знаю, что это за числа.&lt;/span&gt;&lt;br /&gt;Какие числа загадал некто?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-1971812180730611492?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/1971812180730611492/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=1971812180730611492' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1971812180730611492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/1971812180730611492'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/09/blog-post_12.html' title='Загадка про сумму и произведение двух чисел.'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-3228068822019860172</id><published>2008-09-04T21:59:00.000+04:00</published><updated>2009-05-19T22:42:49.069+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='оптимизация'/><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='настройки'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Оптимизация настроек Mozilla Firefox</title><content type='html'>Последние 4 года я пользуюсь браузером Mozilla Firefox, он меня полностью устраивает в плане скорости, удобности и потребления памяти. Но, случается, ни с того, ни с сего памяти он жрёт ОгОгО((( Бывает метров по 200-300, а то и более. Благодаря гибкости Firefox в его настройках возможно снизить потребление памяти и увеличить скорость работы на столько, на сколько это возможно.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Снизить поедание RAM-а, который используется для кэширования:&lt;/span&gt;&lt;br /&gt;     * Набрать “about:config” в адресной строке Firefox&lt;br /&gt;     * “browser.sessionhistory.max_total_viewer” = “0″&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Увеличить скорость загрузки страницы:&lt;/span&gt;&lt;br /&gt;     * Набрать “about:config” в адресной строке Firefox&lt;br /&gt;     * “network.http.pipelining” = “true”&lt;br /&gt;     * “network.http.proxy.pipelining” = “true”&lt;br /&gt;     * “network.http.pipelining.maxrequests” = “30″ (30 запросов за раз)&lt;br /&gt;     * Создать New-&gt;Integer: “nglayout.initialpaint.delay” = “0″&lt;br /&gt;     * Создать New-&gt;Boolean: “network.dns.disableIPv6″ = “false”&lt;br /&gt;     * “content.notify.backoffcount” = “5″&lt;br /&gt;     * “plugin.expose_full_path” = “true”&lt;br /&gt;     * “ui.submenuDelay” = “0″ (ноль)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Снизить поедание RAM-а до 10МБ когда Firefox свёрнут:&lt;/span&gt;&lt;br /&gt;     * Набрать “about:config” в адресной строке Firefox&lt;br /&gt;     * Создать New-&gt;Boolean: “config.trim_on_minimize” = “true” &lt;br /&gt;     * Перезагрузить Firefox&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-3228068822019860172?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/3228068822019860172/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=3228068822019860172' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3228068822019860172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/3228068822019860172'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/09/mozilla-firefox.html' title='Оптимизация настроек Mozilla Firefox'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5554252929980034628</id><published>2008-09-02T18:54:00.001+04:00</published><updated>2009-06-22T15:26:36.811+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='система счисления'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><title type='text'>Конвертер систем счисления</title><content type='html'>&lt;div align='justify' style='text-indent: 40px;'&gt;Решил написать простенькую программку - конвертер чисел в различные системы счисления. Скачать архив с программой и её и исходниками можно тут: &lt;a href="http://narod.ru/disk/2370504000/QBase_sources (copy 2).rar.html"&gt;QBase_sources.rar&lt;/a&gt;(10.4Кб). Сама программа написана на C++ с использованием кроссплатформенной графической библиотеки Qt.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 8px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_sKX69jB94Rc/SL1bGad1QrI/AAAAAAAABzw/xdx_Zngvs8o/s400/QBase.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241445707070915250" /&gt;Весь программный код описан ниже.&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;#include &amp;#60;QtGui/QApplication&amp;#62;&lt;br /&gt;#include &amp;#60;QtGui/QMainWindow&amp;#62;&lt;br /&gt;#include &amp;#60;QComboBox&amp;#62;&lt;br /&gt;#include &amp;#60;QLineEdit&amp;#62;&lt;br /&gt;#include &amp;#60;QHBoxLayout&amp;#62;&lt;br /&gt;#include &amp;#60;QVBoxLayout&amp;#62;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt; QBase : &lt;font color="#0000ff"&gt;public&lt;/font&gt; QWidget&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; Q_OBJECT&lt;br /&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;:&lt;br /&gt;&amp;nbsp; QComboBox *m_baseFrom, *m_baseTo;&lt;br /&gt;&amp;nbsp; QLineEdit *m_inputNumber, *m_outputNumber;&lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;:&lt;br /&gt;&amp;nbsp; QBase(QWidget *parent = 0, Qt::WFlags flags = 0);&lt;br /&gt;&amp;nbsp; ~QBase();&lt;br /&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; slots:&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;void&lt;/font&gt; convert(&lt;font color="#0000ff"&gt;const&lt;/font&gt; QString &amp;#38; text);&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;void&lt;/font&gt; toConvert();&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;QBase::QBase(QWidget *parent, Qt::WFlags flags)&lt;br /&gt;&amp;nbsp; : QWidget(parent, flags)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; QHBoxLayout *mainLayout = &lt;font color="#0000ff"&gt;new&lt;/font&gt; QHBoxLayout(&lt;font color="#0000ff"&gt;this&lt;/font&gt;);&lt;br /&gt;&amp;nbsp; QVBoxLayout *leftLayout = &lt;font color="#0000ff"&gt;new&lt;/font&gt; QVBoxLayout;&lt;br /&gt;&amp;nbsp; QVBoxLayout *rightLayout = &lt;font color="#0000ff"&gt;new&lt;/font&gt; QVBoxLayout;&lt;br /&gt;&amp;nbsp; mainLayout-&amp;#62;addLayout(leftLayout);&lt;br /&gt;&amp;nbsp; mainLayout-&amp;#62;addLayout(rightLayout);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; m_baseFrom = &lt;font color="#0000ff"&gt;new&lt;/font&gt; QComboBox;&lt;br /&gt;&amp;nbsp; leftLayout-&amp;#62;addWidget(m_baseFrom);&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=2; i&amp;#60;=10; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_baseFrom-&amp;#62;addItem(QString(&lt;font color="#A31515"&gt;"%1"&lt;/font&gt;).arg(i));&lt;br /&gt;&amp;nbsp; m_baseFrom-&amp;#62;addItem(&lt;font color="#A31515"&gt;"16"&lt;/font&gt;);&lt;br /&gt;&amp;nbsp; m_baseFrom-&amp;#62;setCurrentIndex(8);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; m_baseTo = &lt;font color="#0000ff"&gt;new&lt;/font&gt; QComboBox;&lt;br /&gt;&amp;nbsp; rightLayout-&amp;#62;addWidget(m_baseTo);&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;for&lt;/font&gt; (&lt;font color="#0000ff"&gt;int&lt;/font&gt; i=2; i&amp;#60;=10; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_baseTo-&amp;#62;addItem(QString(&lt;font color="#A31515"&gt;"%1"&lt;/font&gt;).arg(i));&lt;br /&gt;&amp;nbsp; m_baseTo-&amp;#62;addItem(&lt;font color="#A31515"&gt;"16"&lt;/font&gt;);&lt;br /&gt;&amp;nbsp; m_baseTo-&amp;#62;setCurrentIndex(9);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; m_inputNumber = &lt;font color="#0000ff"&gt;new&lt;/font&gt; QLineEdit;&lt;br /&gt;&amp;nbsp; leftLayout-&amp;#62;addWidget(m_inputNumber);&lt;br /&gt; &lt;br /&gt;&amp;nbsp; m_outputNumber = &lt;font color="#0000ff"&gt;new&lt;/font&gt; QLineEdit;&lt;br /&gt;&amp;nbsp; rightLayout-&amp;#62;addWidget(m_outputNumber);&lt;br /&gt;&amp;nbsp; m_outputNumber-&amp;#62;setReadOnly(&lt;font color="#0000ff"&gt;true&lt;/font&gt;);&lt;br /&gt; &lt;br /&gt;&amp;nbsp; connect( m_inputNumber, SIGNAL(textChanged(QString)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;this&lt;/font&gt;, SLOT(convert(QString)) );&lt;br /&gt;&amp;nbsp; connect( m_baseFrom, SIGNAL(currentIndexChanged(&lt;font color="#0000ff"&gt;int&lt;/font&gt;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;this&lt;/font&gt;, SLOT(toConvert()) );&lt;br /&gt;&amp;nbsp; connect( m_baseTo, SIGNAL(currentIndexChanged(&lt;font color="#0000ff"&gt;int&lt;/font&gt;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;this&lt;/font&gt;, SLOT(toConvert()) );&lt;br /&gt;&lt;br /&gt;&amp;nbsp; m_inputNumber-&amp;#62;setFocus(Qt::OtherFocusReason);&lt;br /&gt;&amp;nbsp; setTabOrder(m_inputNumber, m_baseFrom);&lt;br /&gt;&amp;nbsp; setTabOrder(m_baseFrom, m_baseTo);&lt;br /&gt;&amp;nbsp; m_outputNumber-&amp;#62;setFocusPolicy(Qt::NoFocus);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;QBase::~QBase() {&lt;br /&gt;&amp;nbsp; delete m_baseFrom;&lt;br /&gt;&amp;nbsp; delete m_baseTo;&lt;br /&gt;&amp;nbsp; delete m_inputNumber;&lt;br /&gt;&amp;nbsp; delete m_outputNumber;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt; QBase::convert(&lt;font color="#0000ff"&gt;const&lt;/font&gt; QString &amp;#38; text) {&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;bool&lt;/font&gt; b;&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;int&lt;/font&gt; baseFrom = m_baseFrom-&amp;#62;currentText().toInt(&amp;#38;b,10);&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;int&lt;/font&gt; baseTo = m_baseTo-&amp;#62;currentText().toInt(&amp;#38;b,10);&lt;br /&gt;&amp;nbsp; QString str = QString(&lt;font color="#A31515"&gt;"%1"&lt;/font&gt;).arg(text.toInt(&amp;#38;b,baseFrom),0,baseTo);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (!m_inputNumber-&amp;#62;text().length())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_outputNumber-&amp;#62;setText(&lt;font color="#A31515"&gt;""&lt;/font&gt;);&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;else&lt;/font&gt; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (!b || (text[0]==&lt;font color="#A31515"&gt;'-'&lt;/font&gt;) || (text[0]==&lt;font color="#A31515"&gt;'+'&lt;/font&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_outputNumber-&amp;#62;setText(&lt;font color="#A31515"&gt;"Invalid number"&lt;/font&gt;);&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;else&lt;/font&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_outputNumber-&amp;#62;setText(str);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt; QBase::toConvert() {&lt;br /&gt;&amp;nbsp; convert(m_inputNumber-&amp;#62;text());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt; main(&lt;font color="#0000ff"&gt;int&lt;/font&gt; argc, &lt;font color="#0000ff"&gt;char&lt;/font&gt; *argv[]) {&lt;br /&gt;&amp;nbsp; QApplication a(argc, argv);&lt;br /&gt;&amp;nbsp; QBase w;&lt;br /&gt;&amp;nbsp; w.show();&lt;br /&gt;&amp;nbsp; a.connect(&amp;#38;a, SIGNAL(lastWindowClosed()), &amp;#38;a, SLOT(quit()));&lt;br /&gt;&amp;nbsp; &lt;font color="#0000ff"&gt;return&lt;/font&gt; a.exec();&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1" color="gray"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font size="1" color="gray"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;#include &amp;lt;QtGui/QApplication&amp;gt;&lt;br /&gt;#include &amp;lt;QtGui/QMainWindow&amp;gt;&lt;br /&gt;#include &amp;lt;QComboBox&amp;gt;&lt;br /&gt;#include &amp;lt;QLineEdit&amp;gt;&lt;br /&gt;#include &amp;lt;QHBoxLayout&amp;gt;&lt;br /&gt;#include &amp;lt;QVBoxLayout&amp;gt;&lt;br /&gt;&lt;br /&gt;class QBase : public QWidget&lt;br /&gt;{&lt;br /&gt;   Q_OBJECT&lt;br /&gt;private:&lt;br /&gt;   QComboBox *m_baseFrom, *m_baseTo;&lt;br /&gt;   QLineEdit *m_inputNumber, *m_outputNumber;&lt;br /&gt;public:&lt;br /&gt;   QBase(QWidget *parent = 0, Qt::WFlags flags = 0);&lt;br /&gt;   ~QBase();&lt;br /&gt;private slots:&lt;br /&gt;   void convert(const QString &amp; text);&lt;br /&gt;   void toConvert();&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;QBase::QBase(QWidget *parent, Qt::WFlags flags)&lt;br /&gt;   : QWidget(parent, flags)&lt;br /&gt;{&lt;br /&gt;   QHBoxLayout *mainLayout = new QHBoxLayout(this);&lt;br /&gt;   QVBoxLayout *leftLayout = new QVBoxLayout;&lt;br /&gt;   QVBoxLayout *rightLayout = new QVBoxLayout;&lt;br /&gt;   mainLayout-&gt;addLayout(leftLayout);&lt;br /&gt;   mainLayout-&gt;addLayout(rightLayout);&lt;br /&gt;&lt;br /&gt;   m_baseFrom = new QComboBox;&lt;br /&gt;   leftLayout-&gt;addWidget(m_baseFrom);&lt;br /&gt;   for (int i=2; i&lt;=10; i++)&lt;br /&gt;      m_baseFrom-&gt;addItem(QString("%1").arg(i));&lt;br /&gt;   m_baseFrom-&gt;addItem("16");&lt;br /&gt;   m_baseFrom-&gt;setCurrentIndex(8);&lt;br /&gt;&lt;br /&gt;   m_baseTo = new QComboBox;&lt;br /&gt;   rightLayout-&gt;addWidget(m_baseTo);&lt;br /&gt;   for (int i=2; i&lt;=10; i++)&lt;br /&gt;      m_baseTo-&gt;addItem(QString("%1").arg(i));&lt;br /&gt;   m_baseTo-&gt;addItem("16");&lt;br /&gt;   m_baseTo-&gt;setCurrentIndex(9);&lt;br /&gt;&lt;br /&gt;   m_inputNumber = new QLineEdit;&lt;br /&gt;   leftLayout-&gt;addWidget(m_inputNumber);&lt;br /&gt; &lt;br /&gt;   m_outputNumber = new QLineEdit;&lt;br /&gt;   rightLayout-&gt;addWidget(m_outputNumber);&lt;br /&gt;   m_outputNumber-&gt;setReadOnly(true);&lt;br /&gt; &lt;br /&gt;   connect(m_inputNumber, SIGNAL(textChanged(QString)), this, SLOT(convert(QString)));&lt;br /&gt;   connect(m_baseFrom, SIGNAL(currentIndexChanged(int)), this, SLOT(toConvert()));&lt;br /&gt;   connect(m_baseTo, SIGNAL(currentIndexChanged(int)), this, SLOT(toConvert()));&lt;br /&gt;&lt;br /&gt;   m_inputNumber-&gt;setFocus(Qt::OtherFocusReason);&lt;br /&gt;   setTabOrder(m_inputNumber, m_baseFrom);&lt;br /&gt;   setTabOrder(m_baseFrom, m_baseTo);&lt;br /&gt;   m_outputNumber-&gt;setFocusPolicy(Qt::NoFocus);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;QBase::~QBase() {&lt;br /&gt;   delete m_baseFrom;&lt;br /&gt;   delete m_baseTo;&lt;br /&gt;   delete m_inputNumber;&lt;br /&gt;   delete m_outputNumber;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void QBase::convert(const QString &amp; text) {&lt;br /&gt;   bool b;&lt;br /&gt;   int baseFrom = m_baseFrom-&gt;currentText().toInt(&amp;b,10);&lt;br /&gt;   int baseTo = m_baseTo-&gt;currentText().toInt(&amp;b,10);&lt;br /&gt;   QString str = QString("%1").arg(text.toInt(&amp;b,baseFrom),0,baseTo);&lt;br /&gt;&lt;br /&gt;   if (!m_inputNumber-&gt;text().length())&lt;br /&gt;      m_outputNumber-&gt;setText("");&lt;br /&gt;   else if (!b || (text[0]=='-') || (text[0]=='+'))&lt;br /&gt;      m_outputNumber-&gt;setText("Invalid number");&lt;br /&gt;   else &lt;br /&gt;      m_outputNumber-&gt;setText(str);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void QBase::toConvert() {&lt;br /&gt;   convert(m_inputNumber-&gt;text());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;   QApplication a(argc, argv);&lt;br /&gt;   QBase w;&lt;br /&gt;   w.show();&lt;br /&gt;   a.connect(&amp;a, SIGNAL(lastWindowClosed()), &amp;a, SLOT(quit()));&lt;br /&gt;   return a.exec();&lt;br /&gt;}--&gt;&lt;br /&gt;&lt;div align='justify' style='text-indent: 40px;'&gt;Если установлен интегратор Qt в MicroSoft Visual Studio, то распакуйте исходники из архива в одну папку, запустите Visual Studio и в меню выберите пункт "Qt"-&gt;"Open Solution from .pro File" и укажите путь к файлу QBase.pro. В этом случае Visual Studio сама создаст проект.&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5554252929980034628?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5554252929980034628/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5554252929980034628' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5554252929980034628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5554252929980034628'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/09/blog-post_02.html' title='Конвертер систем счисления'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_sKX69jB94Rc/SL1bGad1QrI/AAAAAAAABzw/xdx_Zngvs8o/s72-c/QBase.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-2738108136762535278</id><published>2008-09-02T00:11:00.000+04:00</published><updated>2009-05-19T22:41:30.854+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='выполнить'/><category scheme='http://www.blogger.com/atom/ns#' term='моддинг'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='пуск'/><title type='text'>Моддинг Win+R</title><content type='html'>Сегодня сделал небольшой моддинг своей винды. Модернизировал диалоговое окошко "Пуск-&gt;Выполнить...", также известное как Win+R.&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;" src="http://2.bp.blogspot.com/_sKX69jB94Rc/SLxNT9KUCII/AAAAAAAABzg/PHgwi-YMx_0/s400/run.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5241149071583086722" /&gt;&lt;br /&gt;&lt;span class=fullpost&gt;&lt;br /&gt;Сделал это следующим образом:&lt;br /&gt;1) Открыл файл c:\windows\system32\shell32.dll в программе &lt;a href="http://www.angusj.com/resourcehacker/"&gt;Resource Hacker&lt;/a&gt;. Выбрал ресурс Shell32.dll:\Dialog\1003\1049 и поменял в нём код:&lt;br /&gt;&lt;div style="height:200px; overflow:auto; background:#ffffff; font-size:8pt;"&gt;&lt;pre&gt;1003 DIALOGEX 0, 0, 227, 95&lt;br /&gt;STYLE DS_FIXEDSYS | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU&lt;br /&gt;CAPTION "Запуск программы"&lt;br /&gt;LANGUAGE LANG_RUSSIAN, 0x1&lt;br /&gt;FONT 8, "MS Shell Dlg"&lt;br /&gt;{&lt;br /&gt;   CONTROL 160, 12297, STATIC, SS_ICON | WS_CHILD | WS_VISIBLE, 7, 11, 18, 20 &lt;br /&gt;   CONTROL "Введите имя программы, папки, документа или ресурса Интернета, и Windows откроет их.", 12289, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 42, 11, 182, 18 &lt;br /&gt;   CONTROL "&amp;Открыть:", 12305, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 39, 32, 8 &lt;br /&gt;   CONTROL "", 12298, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 42, 37, 177, 100 &lt;br /&gt;   CONTROL "Запустить в отдельной области &amp;памяти", 12306, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 42, 54, 183, 10 &lt;br /&gt;   CONTROL "ОК", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 62, 70, 50, 14 &lt;br /&gt;   CONTROL "Отмена", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 116, 70, 50, 14 &lt;br /&gt;   CONTROL "Об&amp;зор...", 12288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 170, 70, 50, 14 &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;на код:&lt;br /&gt;&lt;div style="height:200px; overflow:auto; background:#ffffff; font-size:8pt;"&gt;&lt;pre&gt;1003 DIALOGEX 0, 0, 237, 110&lt;br /&gt;STYLE DS_FIXEDSYS | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU&lt;br /&gt;CAPTION "Запуск программы"&lt;br /&gt;LANGUAGE LANG_RUSSIAN, 0x1&lt;br /&gt;FONT 8, "MS Shell Dlg"&lt;br /&gt;{&lt;br /&gt;   CONTROL "\"taskmgr\" - Диспетчер задач\n\"regedit\" - Редактор реестра\n\"msconfig\" - Настройка системы\n\"services.msc\" - Список сервисов\n\"dcomcnfg\" - Служба компонентов\n\"compmgmt.msc\" -  Управление ПК\n\"devmgmt.msc\" - Диспетчер утр-в\n\"wupdmgr\" - Обновление системы", 12289, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 3, 118, 65 &lt;br /&gt;   CONTROL "\"dxdiag\" - Ср-во диагностики\n\"eventvwr.msc\" - События\n\"dfrg.msc\" - Дефрагментация\n\"fsquirt\" - Bluetooth manager\n\"shutdown -a\" - Не выключать\n\"charmap\" - Таблица символов\n\"osk\" - Экранная клавиатура\n\"iexpress\" - IExpress 2.0", 12289, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 129, 3, 104, 65 &lt;br /&gt;   CONTROL "&amp;Открыть:", 12305, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 17, 74, 32, 8 &lt;br /&gt;   CONTROL "", 12298, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 52, 72, 177, 100 &lt;br /&gt;   CONTROL "З", 12306, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 24, 90, 20, 10 &lt;br /&gt;   CONTROL "ОК", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 72, 90, 50, 14 &lt;br /&gt;   CONTROL "Отмена", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 126, 90, 50, 14 &lt;br /&gt;   CONTROL "Об&amp;зор...", 12288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 180, 90, 50, 14 &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;2) Действуя аналогично, изменил значения в файле c:\windows\system32\taskmgr.exe. Поменял значение строки taskmgr:\String Table\626\1049:&lt;br /&gt;&lt;div style="overflow:auto; background:#ffffff; font-size:8pt;"&gt;&lt;pre&gt;10002,  "Введите имя программы, папки, документа или ресурса Интернета, и Windows откроет их."&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;заменил на:&lt;br /&gt;&lt;div style="overflow:auto; background:#ffffff; font-size:8pt;"&gt;&lt;pre&gt;10002,  "\"taskmgr\" - Диспетчер задач\n\"regedit\" - Редактор реестра\n\"msconfig\" - Настройка системы\n\"services.msc\" - Список сервисов\n\"dcomcnfg\" - Служба компонентов\n\"compmgmt.msc\" - Управление ПК\n\"devmgmt.msc\" - Диспетчер утр-в\n\"wupdmgr\" - Обновление системы"&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;3) Загрузился с Live-CD (любая другая ОС) и подменил файлы c:\windows\system32\shell32.dll и c:\windows\system32\taskmgr.exe на новые, не забыв сделать резервные копии оригинальных файлов))&lt;br /&gt;&lt;br /&gt;З.Ы.&lt;br /&gt;И кстати, всё может вернуться назад когда вы обновите винду, а может и не вернуться . . .&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-2738108136762535278?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/2738108136762535278/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=2738108136762535278' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/2738108136762535278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/2738108136762535278'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/09/blog-post_01.html' title='Моддинг Win+R'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_sKX69jB94Rc/SLxNT9KUCII/AAAAAAAABzg/PHgwi-YMx_0/s72-c/run.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6482727957786849560.post-5774116647422294026</id><published>2008-09-01T18:00:00.000+04:00</published><updated>2008-09-01T18:28:10.730+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='праздник'/><category scheme='http://www.blogger.com/atom/ns#' term='день рождения'/><title type='text'>Первое сообщение</title><content type='html'>Сегодня, 1 сентября 2008 . . .&lt;br /&gt;С началом нового учебного года решил завести этот блог. Ещё не знаю, что буду сюда писать. Но хочется что-нибудь полезное. Может это будут важные для меня новости, может какие-то программы, может просто ссылки. Жаль у гугла всё ещё нет файлового хранилища. Если нужно будет что-то выложить, наверно сделаю это на http://narod.yandex.ru/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6482727957786849560-5774116647422294026?l=k06a.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://k06a.blogspot.com/feeds/5774116647422294026/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6482727957786849560&amp;postID=5774116647422294026' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5774116647422294026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6482727957786849560/posts/default/5774116647422294026'/><link rel='alternate' type='text/html' href='http://k06a.blogspot.com/2008/09/blog-post.html' title='Первое сообщение'/><author><name>[k06a]</name><uri>http://www.blogger.com/profile/04937580939115849295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_sKX69jB94Rc/SkfHAVX4TJI/AAAAAAAAETg/V0wACD6l_8k/S220/Ichigo6.jpeg'/></author><thr:total>0</thr:total></entry></feed>
