<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>parsers.info - программирование на delphi, парсеры и программы для icq.</title>
	
	<link>http://parsers.info</link>
	<description>Софт-блог Димаса</description>
	<lastBuildDate>Tue, 08 Sep 2009 10:50:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/parsers" type="application/rss+xml" /><feedburner:emailServiceId>parsers</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Сороковая симфония Моцарта из внутреннего динамика.</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/-hDCPKR0Xpc/</link>
		<comments>http://parsers.info/2009/05/sorokovaya-simfoniya-mocarta-iz-vnutrennego-dinamika/#comments</comments>
		<pubDate>Sat, 30 May 2009 09:40:56 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Софт]]></category>
		<category><![CDATA[звуки]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=360</guid>
		<description><![CDATA[
Да, и такое бывает. Программа весит 33Кб и не имеет окон, то есть музыка пойдёт сразу после запуска.
Если у Вас нет внутреннего динамика, что встречается, то ничего не произойдёт.
Язык написания как обычно, delphi 7, используется только модуль windows.

скачать
Немного информации:
используется api функция Beep из библиотеки kernel32, синтаксис:
function Beep(dwFreq, dwDuration: DWORD): BOOL;
dwFreq &#8211; частота в герцах, dwDuration [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://parsers.info/wp-content/uploads/2009/05/itunes.png" alt="Сороковая симфония Моцарта из внутреннего динамика" title="Сороковая симфония Моцарта из внутреннего динамика" width="256" height="256" class="aligncenter size-full wp-image-359" /></p>
<p>Да, и такое бывает. Программа весит 33Кб и не имеет окон, то есть музыка пойдёт сразу после запуска.<br />
Если у Вас нет внутреннего динамика, что встречается, то ничего не произойдёт.<br />
Язык написания как обычно, delphi 7, используется только модуль windows.<br />
<span id="more-360"></span><br />
<a href="http://parsers.info/pub/m40.exe">скачать</a></p>
<p>Немного информации:<br />
используется <strong>api</strong> функция <strong>Beep</strong> из библиотеки <strong>kernel32</strong>, синтаксис:<br />
<strong>function Beep(dwFreq, dwDuration: DWORD): BOOL;</strong><br />
<strong>dwFreq</strong> &#8211; частота в герцах, <strong>dwDuration</strong> &#8211; длина в миллисекундах.</p>
<p>Подпишись на <a href="http://feeds2.feedburner.com/~r/parsers/~6/1">rss-ленту</a>, и когда я напишу про это статью, ты узнаешь первым.</p>
<p>(c) crystalbit, <a href="http://parsers.info">http://parsers.info</a></p>
<p>P. S. если потребуется другая мелодия, свистни</p>

<p><a href="http://feedads.g.doubleclick.net/~a/teSm6-2ufPg89kOd8Wx8ubFQLfw/0/da"><img src="http://feedads.g.doubleclick.net/~a/teSm6-2ufPg89kOd8Wx8ubFQLfw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/teSm6-2ufPg89kOd8Wx8ubFQLfw/1/da"><img src="http://feedads.g.doubleclick.net/~a/teSm6-2ufPg89kOd8Wx8ubFQLfw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/-hDCPKR0Xpc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/sorokovaya-simfoniya-mocarta-iz-vnutrennego-dinamika/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/sorokovaya-simfoniya-mocarta-iz-vnutrennego-dinamika/</feedburner:origLink></item>
		<item>
		<title>DirSearcher</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/vekKahaNVps/</link>
		<comments>http://parsers.info/2009/05/dirsearcher/#comments</comments>
		<pubDate>Thu, 28 May 2009 18:36:43 +0000</pubDate>
		<dc:creator>faza02</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Софт]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[сканер директорий]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=355</guid>
		<description><![CDATA[DirSearcher &#8211; это сканер директорий.
Логи сайта ведет в c:/сайт_log.txt

#!/usr/bin/python
#header scan
#http://sql.parsers.info/
#faza02[at]gmail[dot]com

import urllib
def  scan():
	print '     ____________________________  '
	print '    /                           /\ '
	print ' [...]]]></description>
			<content:encoded><![CDATA[<p><strong>DirSearcher</strong> &#8211; это сканер директорий.<br />
Логи сайта ведет в c:/сайт_log.txt<br />
<span id="more-355"></span></p>
<pre name="code" class="py">#!/usr/bin/python
#header scan
#http://sql.parsers.info/
#faza02[at]gmail[dot]com

import urllib
def  scan():
	print '     ____________________________  '
	print '    /                           /\ '
	print '   /                          _/ /\ '
	print '  /         by faza02         / \/ '
	print ' /                           /\   '
	print '/___________________________/ / '
	print '\___________________________\/ '
	print ' \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '

	good = [100, 101, 200, 201,202, 203,204,205, 206, 300, 301, 302, 303, 304, 305]

	site = raw_input(u'\nsite: ')
	dirlist = raw_input(u'dirs: ')

	fileopen = open(dirlist, 'a+').readlines()
	for i in range(len(fileopen)):
	 	state = urllib.urlopen('http://' + site + fileopen[i][:-1]).getcode()
	 	if state in good:
	 	 print fileopen[i][:-1] + ' - ' + str(state)
	 	open('c:/'+site+'_log.txt', 'a+').write(fileopen[i][:-1] + ' - ' + str(state) + '\n')

scan()
print '\nok!'</pre>
<p>by <strong>faza02</strong>.<br />
<a href="http://sql.parsers.info">http://sql.parsers.info</a><br />
<a href="http://parsers.info">http://parsers.info</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/OiXomGPxPvP0wYQOKoXOqrC_mt8/0/da"><img src="http://feedads.g.doubleclick.net/~a/OiXomGPxPvP0wYQOKoXOqrC_mt8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/OiXomGPxPvP0wYQOKoXOqrC_mt8/1/da"><img src="http://feedads.g.doubleclick.net/~a/OiXomGPxPvP0wYQOKoXOqrC_mt8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/vekKahaNVps" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/dirsearcher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/dirsearcher/</feedburner:origLink></item>
		<item>
		<title>Делаем из последовательности картинок полноценное видео. QuickTime помогает</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/BJbvx1-5OoA/</link>
		<comments>http://parsers.info/2009/05/delaem-iz-posledovatelnosti-kartinok-polnocennoe-video/#comments</comments>
		<pubDate>Thu, 28 May 2009 15:48:37 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[разное]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=345</guid>
		<description><![CDATA[Как ни странно, данный пост не касается ни delphi, ни программирования в целом, но очень хочется рассказать, как склеить много отдельных кадров-картинок в видео. В предыдущем посту, где мы на 401 картинке ставили одну и ту же надпись, ты наверняка и не догадывался, зачем мне на столько картинок ставить одно и то же, а вот [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_344" class="wp-caption aligncenter" style="width: 377px"><img src="http://parsers.info/wp-content/uploads/2009/05/1.png" alt="Делаем из последовательности картинок полноценное видео." title="Делаем из последовательности картинок полноценное видео." width="367" height="115" class="size-full wp-image-344" /><p class="wp-caption-text">Делаем из последовательности картинок полноценное видео.</p></div>
<p>Как ни странно, данный пост не касается ни delphi, ни программирования в целом, но очень хочется рассказать, как склеить много отдельных кадров-картинок в видео. В предыдущем посту, где мы на 401 картинке ставили одну и ту же надпись, ты наверняка и не догадывался, зачем мне на столько картинок ставить одно и то же, а вот зачем: мой друг, <strong>goldriver</strong>, неким образом, заставил вебкамеру делать снимок из окна каждую минуту. И так 401 минуту, получилось 401 картинка. Если первую открыть в проводнике и зажать вправо, получится клёвая анимация.<br />
Но её никуда не выложишь, да и кому нужна 401 отдельная картинка?<br />
<span id="more-345"></span><br />
Итак, нам понадобится <strong>Apple QuickTime</strong>, а точнее Pro версия. На <a href="http://store.apple.com/us/product/D3381Z/A?mco=NDY5Nzk0NQ">оф. сайте</a> она стоит 30$.<br />
Всё делается очень просто:<br />
1. Открываем <strong>QuickTime Player</strong><br />
2. Жмём <strong>Файл</strong> &#8211; <strong>Открыть последовательность изображений</strong> (Ctrl &#8211; Shift &#8211; O), и выбираем первый файл, только первую картинку. Если картинок много, то программа позволит себе немного повисеть, ждём.<br />
3. Открылось? Отлично! Если сейчас нажать на Play, то мы увидим то, что нам нужно, жмём <strong>Файл</strong> &#8211; <strong>Экспорт</strong> (Ctrl &#8211; E) и сохраняем, предварительно выбрав нужный формат из их изобилия. Процесс экспорта может идти несколько минут, но результат стоит того.<br />
<img src="http://parsers.info/wp-content/uploads/2009/05/qt1.png" alt="QuickTime Pro" title="QuickTime Pro" width="352" height="365" class="aligncenter size-full wp-image-346" /></p>
<p>В качестве бонуса скачай результат, получилось очень красиво, надеюсь в скором времени <strong>goldriver</strong> еще что-нибудь такое заснимет, подписавшись на <a href="http://feeds2.feedburner.com/~r/parsers/~6/1">rss-ленту</a>, ты узнаешь это первым.</p>
<p>Вот и само видео на YouTube:<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/k6-VDcbjBkE&#038;hl=ru&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/k6-VDcbjBkE&#038;hl=ru&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
К сожалению, качество оставляет желать лучшего, можешь скачать avi в архиве: <a href="http://parsers.info/pub/nebo.rar">скачать</a></p>
<p>(c) goldriver, <a href="http://d.parsers.info">http://d.parsers.info</a><br />
(c)crystalbit, <a href="http://parsers.info">http://parsers.info</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/sKIwV16DqeRE4zV4AQVzo47NxPo/0/da"><img src="http://feedads.g.doubleclick.net/~a/sKIwV16DqeRE4zV4AQVzo47NxPo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sKIwV16DqeRE4zV4AQVzo47NxPo/1/da"><img src="http://feedads.g.doubleclick.net/~a/sKIwV16DqeRE4zV4AQVzo47NxPo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/BJbvx1-5OoA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/delaem-iz-posledovatelnosti-kartinok-polnocennoe-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/delaem-iz-posledovatelnosti-kartinok-polnocennoe-video/</feedburner:origLink></item>
		<item>
		<title>Массовое редактирование картинок – проставляем надписи</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/m5C3L8Su1OI/</link>
		<comments>http://parsers.info/2009/05/massovoe-redaktirovanie-kartinok-prostavlyaem-nadpisi/#comments</comments>
		<pubDate>Thu, 28 May 2009 07:59:31 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[работа с картинками]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=339</guid>
		<description><![CDATA[
Сегодня встала такая задача &#8211; отредактировать картинки. Дописать текст в верхний левый угол, проставить некие копирайты на каждую картинку.
Всё бы ничего, если бы не количество изображений &#8211; более 400. Брррр, вручную конечно можно, но долго и неинтересно. Можно поискать готовое решение, но небезопасно и тоже неинтересно.
Итак, будем писать на дельфи. Оформлять как готовую программу не [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://parsers.info/wp-content/uploads/2009/05/ph1.jpg" alt="Массовое преобразование картинок." title="Массовое преобразование картинок." width="320" height="126" class="aligncenter size-full wp-image-341" /></p>
<p>Сегодня встала такая задача &#8211; отредактировать картинки. Дописать текст в верхний левый угол, проставить некие копирайты на каждую картинку.</p>
<p>Всё бы ничего, если бы не количество изображений &#8211; более 400. Брррр, вручную конечно можно, но долго и неинтересно. Можно поискать готовое решение, но небезопасно и тоже неинтересно.<br />
Итак, будем писать на дельфи. Оформлять как готовую программу не буду, так как писал только для добавления копирайта, релиз делать не собирался.<br />
Ну что, мне друг прислал 401 картинку типа <strong>Windows Bitmap (BMP)</strong>, мне нужно, как я уже сказал, поместить текст на каждую, отредактировать все сразу.<br />
<span id="more-339"></span></p>
<h3>1. Основа программы.</h3>
<p> Создаём новый проект, убираем форму, Project &#8211; View source, кодить будем здесь. Использовать будем следующие модули: <strong>windows</strong>, <strong>sysutils</strong>, <strong>graphics</strong>. Можно и без <strong>SysUtils</strong>, тогда нам придётся использовать свой вариант функции IntToStr (<a href="http://parsers.info/2009/05/obxodimsya-bez-sysutils-stroka-chislo/">Обходимся без SysUtils. Строка <-> число</a>), а для подручной программы это делать долго. Что у нас на данном этапе:</p>
<pre name="code" class="delphi">
program Project1;

uses
  windows,
  graphics,
  sysutils;

begin

end.
</pre>
<h3>2. Переменные.</h3>
<p>Объявим следующее:<br />
<strong>b: TBitmap</strong> &#8211; сюда будем загружать очередную картинку,<br />
<strong>i: integer</strong> &#8211; это счётчик, он будет меняться от нуля до 401,<br />
<strong>s: string</strong> &#8211; сюда записываем имя файла</p>
<h3>3. Штампуем)</h3>
<p>Так вот, нам нужно сначала создать объект класса <strong>TBitmap</strong>, а в конце его уничтожить. А посередине сделаем простой цикл. Если писать программу для масс, для тех, кто хочет дорисовать каждую картинку в определенной папке, независимо от имени, надо использовать <strong>FindFirst</strong> и <strong>FindNext</strong>, напишу как-нибудь про это вкратце, а сейчас ограничимся простым циклом <strong>for</strong>.<br />
Для загрузки и сохранения картинки используем <strong>LoadFromFile</strong> и <strong>SaveToFile</strong>.<br />
Вывода текста на <strong>TCanvas</strong>: <strong>TCanvas.TextOut(x, y: integer; text: string)</strong>. С этой процедурой всё понятно.<br />
Так-то оно так, но при таком раскладе текст нарисуется с непрозрачным фоном, это не очень красиво. Используем <strong>api</strong> функцию <strong>SetBKMode</strong>.<br />
Остается добавить, что у объекта типа <strong>TCanvas</strong> есть свойство <strong>Font</strong>, это у нас шрифт. Ну и для красивого кода нам понадобится оператор <strong>with</strong>.</p>
<h3>3. Код программы.</h3>
<pre name="code" class="delphi">
program Project1;

uses
  windows,
  graphics,
  sysutils;

var
  b: TBitmap;
  i: integer;
  s: string;

begin
  b:=TBitmap.Create;
  for i:=1 to 401 do begin
    s:='c:\w\photo'+inttostr(i)+'.bmp';
    with b do begin
      LoadFromFile(s);
      SetBKMode(Canvas.Handle, windows.TRANSPARENT);
      Canvas.Font.Color:=clGreen;
      Canvas.Font.Style:=[fsBold];
      Canvas.TextOut(10, 10, 'http://parsers.info');
      SaveToFile(s);
    end;
  end;
  b.Free;
end.
</pre>
<p>c:\w\ это путь к моим файлам, ты уже понял.<br />
И еще небольшая оговорка &#8211; константа <strong>TRANSPARENT</strong>, мы её используем в функции <strong>SetBKMode</strong>. Догадался, зачем мы обращаемся к ней, как к <strong>windows.TRANSPARENT</strong>? Мы находимся внутри <strong>with</strong>, то есть всё написанное может быть связано с объектом b, а у него есть свойство <strong>Transparent</strong>! Вот мы и указываем, что нам нужно не оно, хоть и приоритет в его пользу.</p>
<h3>4. Итог.</h3>
<p>Вот мы и набросали программу, которая добавит во все картинки надпись. Проблема решена. А надо что-то другое &#8211; отредактировать пару строк и готово.</p>
<p>(c) crystalbit, <a href="http://parsers.info">http://parsers.info</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/LBh5dLzs69Un6oTxd-6HomjVLSs/0/da"><img src="http://feedads.g.doubleclick.net/~a/LBh5dLzs69Un6oTxd-6HomjVLSs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LBh5dLzs69Un6oTxd-6HomjVLSs/1/da"><img src="http://feedads.g.doubleclick.net/~a/LBh5dLzs69Un6oTxd-6HomjVLSs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/m5C3L8Su1OI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/massovoe-redaktirovanie-kartinok-prostavlyaem-nadpisi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/massovoe-redaktirovanie-kartinok-prostavlyaem-nadpisi/</feedburner:origLink></item>
		<item>
		<title>Количество подстрок в строке.</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/U9IdXhLNSTE/</link>
		<comments>http://parsers.info/2009/05/kolichestvo-podstrok-v-stroke/#comments</comments>
		<pubDate>Thu, 21 May 2009 15:01:24 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[парсинг]]></category>
		<category><![CDATA[функция]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=336</guid>
		<description><![CDATA[
Выкладываю просто функцию *_*


function PosCount(substr, str: string): integer;
var
  p, i: integer;
begin
  i:=-1;
  p:=0;
  repeat
    i:=i+1;
    p:=PosEx(substr, str, p + Length(substr));
  until p=0;
  Result:=i;
end;

Количество подстрок определяет на ура, писал для просто символов.
(c) crystalbit, http://parsers.info
]]></description>
			<content:encoded><![CDATA[<p><img src="http://parsers.info/wp-content/uploads/2009/05/schoty.jpg" alt="schoty" title="schoty" width="269" height="183" class="aligncenter size-full wp-image-337" /><br />
Выкладываю просто функцию *_*<br />
<span id="more-336"></span></p>
<pre name="code" class="delphi">
function PosCount(substr, str: string): integer;
var
  p, i: integer;
begin
  i:=-1;
  p:=0;
  repeat
    i:=i+1;
    p:=PosEx(substr, str, p + Length(substr));
  until p=0;
  Result:=i;
end;
</pre>
<p>Количество подстрок определяет на ура, писал для просто символов.<br />
(c) crystalbit, <a href="http://parsers.info">http://parsers.info</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/VCyXJsGKr01H5ZV0iLVc5W0IBsg/0/da"><img src="http://feedads.g.doubleclick.net/~a/VCyXJsGKr01H5ZV0iLVc5W0IBsg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VCyXJsGKr01H5ZV0iLVc5W0IBsg/1/da"><img src="http://feedads.g.doubleclick.net/~a/VCyXJsGKr01H5ZV0iLVc5W0IBsg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/U9IdXhLNSTE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/kolichestvo-podstrok-v-stroke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/kolichestvo-podstrok-v-stroke/</feedburner:origLink></item>
		<item>
		<title>mr.gen v01 with symbol filter</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/hx0l_6y7jXc/</link>
		<comments>http://parsers.info/2009/05/mrgen-v01-with-symbol-filter/#comments</comments>
		<pubDate>Thu, 21 May 2009 14:45:58 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Софт]]></category>
		<category><![CDATA[генератор]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=332</guid>
		<description><![CDATA[
Небольшое изменение, как отдельная версия, добавлен один интересный фильтр.

Суть вот в чем: указываем символ и указываем количество &#8211; от и до. В файл будут записаны все пароли, в которых количество таких символов входит в указанный диапазон. Для конкретного количества указываем одинаковые значения от и до.
скачать
(c) crystalbit, http://parsers.info
если не требуется такой фильтр, рекомендую обычную версию &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://parsers.info/wp-content/uploads/2009/05/sfilter.png" alt="sfilter" title="sfilter" width="224" height="155" class="aligncenter size-full wp-image-333" /><br />
Небольшое изменение, как отдельная версия, добавлен один интересный фильтр.<br />
<span id="more-332"></span><br />
Суть вот в чем: указываем символ и указываем количество &#8211; от и до. В файл будут записаны все пароли, в которых количество таких символов входит в указанный диапазон. Для конкретного количества указываем одинаковые значения от и до.</p>
<p><a href="http://parsers.info/pub/mgensf.exe">скачать</a></p>
<p>(c) crystalbit, <a href="http://parsers.info">http://parsers.info</a></p>
<p>если не требуется такой фильтр, рекомендую обычную версию &#8211; <a href="http://parsers.info/2009/05/mrgen-v01/">mr.gen v01</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/bKjv9h5Yo2v2P5Q-aDCGKU7Saj0/0/da"><img src="http://feedads.g.doubleclick.net/~a/bKjv9h5Yo2v2P5Q-aDCGKU7Saj0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bKjv9h5Yo2v2P5Q-aDCGKU7Saj0/1/da"><img src="http://feedads.g.doubleclick.net/~a/bKjv9h5Yo2v2P5Q-aDCGKU7Saj0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/hx0l_6y7jXc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/mrgen-v01-with-symbol-filter/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/mrgen-v01-with-symbol-filter/</feedburner:origLink></item>
		<item>
		<title>Немного статистики</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/S05-BoP-M3M/</link>
		<comments>http://parsers.info/2009/05/nemnogo-statistiki/#comments</comments>
		<pubDate>Tue, 19 May 2009 16:37:03 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[статистика]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=325</guid>
		<description><![CDATA[В марте поставил код google analytics, с тех пор достаточно много интересной статистики, например, браузеры, с которых заходили.

Браузеры.
Топ браузеров, с которых посещали http://parsers.info:



Браузер
Посещений
Процент


Opera
442
46.34%


Firefox
298
27.15%


Internet Explorer
135
13.21%


Chrome
59
8.94%


Opera Mini
36
2.83%


Safari
8
0.90%


Остальные
6
0.62%


Как мы видим, опера рулит)
Про операционки всё как всегда: 93% &#8211; windows, 4% &#8211; not set (скорее всего тоже windows *_*), 2% &#8211; Линукс, остальное &#8211; мак и симбиан.
*_*
]]></description>
			<content:encoded><![CDATA[<p>В марте поставил код <strong>google analytics</strong>, с тех пор достаточно много интересной статистики, например, браузеры, с которых заходили.<br />
<span id="more-325"></span><br />
<strong>Браузеры.</strong><br />
Топ браузеров, с которых посещали <a href="http://parsers.info">http://parsers.info</a>:<br />
<img src="https://www.google.com/analytics/reporting/pie?p=3kq23f10p0ou07v02i01d00d&#038;w=340&#038;h=240" alt="статистика по браузерам посетителей" /></p>
<table>
<tr STYLE='color:#FFFFFF;background-color:#000000'>
<td>Браузер</td>
<td>Посещений</td>
<td>Процент</SPAN></td>
</tr>
<tr>
<td><SPAN STYLE='color:#058DC7'>Opera</SPAN></td>
<td>442</td>
<td>46.34%</td>
</tr>
<tr>
<td><SPAN STYLE='color:#50B432'>Firefox</SPAN></td>
<td>298</td>
<td>27.15%</td>
</tr>
<tr>
<td><SPAN STYLE='color:#ED561B'>Internet Explorer</SPAN></td>
<td>135</td>
<td>13.21%</td>
</tr>
<tr>
<td><SPAN STYLE='color:#EDEF00'>Chrome</SPAN></td>
<td>59</td>
<td>8.94%</td>
</tr>
<tr>
<td><SPAN STYLE='color:#24CBE5'>Opera Mini</SPAN></td>
<td>36</td>
<td>2.83%</td>
</tr>
<tr>
<td><SPAN STYLE='color:#64E572'>Safari</SPAN></td>
<td>8</td>
<td>0.90%</td>
</tr>
<tr>
<td>Остальные</td>
<td>6</td>
<td>0.62%</td>
</tr>
</table>
<p>Как мы видим, опера рулит)</p>
<p>Про операционки всё как всегда: 93% &#8211; <strong>windows</strong>, 4% &#8211; <strong>not set</strong> (скорее всего тоже windows *_*), 2% &#8211; <strong>Линукс</strong>, остальное &#8211; <strong>мак</strong> и <strong>симбиан</strong>.</p>
<p>*_*</p>

<p><a href="http://feedads.g.doubleclick.net/~a/j303lfgMVcnWlBk3yJU49_h92Z0/0/da"><img src="http://feedads.g.doubleclick.net/~a/j303lfgMVcnWlBk3yJU49_h92Z0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/j303lfgMVcnWlBk3yJU49_h92Z0/1/da"><img src="http://feedads.g.doubleclick.net/~a/j303lfgMVcnWlBk3yJU49_h92Z0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/S05-BoP-M3M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/nemnogo-statistiki/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/nemnogo-statistiki/</feedburner:origLink></item>
		<item>
		<title>Обходимся без SysUtils. FileExists</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/54R7yOZ2uOs/</link>
		<comments>http://parsers.info/2009/05/obxodimsya-bez-sysutils-fileexists/#comments</comments>
		<pubDate>Thu, 14 May 2009 12:44:20 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[api]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=313</guid>
		<description><![CDATA[
В комментарии к IntToStr, StrToInt, TryStrToInt без использования SysUtils пользователь с ником fry предложил мне функцию FileExists.

Я позволил себе её немного сократить, но смысл остался &#8211; мы пытаемся открыть файл, если возвращается ошибка (HFILE_ERROR, что есть -1), то скорее всего это из-за того, что файла нет. Если не ошибка, то возвращается handle открытого файла &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://parsers.info/wp-content/uploads/2009/05/fileexists.png" alt="fileexists" title="fileexists" width="267" height="200" class="aligncenter size-full wp-image-314" /></p>
<p>В комментарии к <a href="http://parsers.info/2009/05/obxodimsya-bez-sysutils-stroka-chislo/">IntToStr, StrToInt, TryStrToInt без использования SysUtils</a> пользователь с ником <strong>fry</strong> предложил мне функцию <strong>FileExists</strong>.<br />
<span id="more-313"></span><br />
Я позволил себе её немного сократить, но смысл остался &#8211; мы пытаемся открыть файл, если возвращается ошибка (<strong>HFILE_ERROR</strong>, что есть -1), то скорее всего это из-за того, что файла нет. Если не ошибка, то возвращается <strong>handle</strong> открытого <strong>файла</strong> &#8211; для дальнейшей с ним работы.</p>
<p>Итак,</p>
<pre name="code" class="delphi">
function FileExists(param: string): boolean;
begin
  Result:=(_lopen(PChar(param), OF_SHARE_COMPAT) <> HFILE_ERROR);
end;
</pre>
<p>Если handle файла не <strong>HFILE_ERROR</strong>, то True, иначе False. Единственное, меня здесь смущает одна вещь &#8211; открыли мы файл, если он есть, а закрыть и забыли, закрывать надо аналогичной функцией <strong>_lclose</strong>.</p>
<p>Вот немного модифицированный вариант, рекомендую его:</p>
<pre name="code" class="delphi">
function FileExists(param: string): boolean;
var
  h: integer;
begin
  h:=_lopen(PChar(param), OF_SHARE_COMPAT);
  Result:=(h <> HFILE_ERROR);
  if Result then
    _lclose(h);
end;
</pre>
<p>Еще хочется добавить, что раньше я тоже был в поисках такой функции, и вот мой собственный вариант:</p>
<pre name="code" class="delphi">
function FileExists(FileName:string):boolean;
var
  FindData: TWin32FindData;
begin
  Result:=(FindFirstFile(PChar(FileName),FindData) <> INVALID_HANDLE_VALUE);
end;
</pre>
<p>Здесь, в отличие от предыдущих вариантов, мы не открываем файл, мне кажется так оптимальнее.</p>
<p>Все функции рабочие, все используют библиотеку <strong>kernel32</strong>.</p>
<p>С наилучшими пожеланиями, (c) crystalbit, <a href="http://parsers.info">http://parsers.info</a><br />
Спасибо саноффке за клёвую картинку.</p>
<p>А еще подпишись на <a href="http://feeds2.feedburner.com/~r/parsers/~6/1">rss</a>, отпишись в комментариях, что думаешь по этому поводу и не хмурься <img src='http://parsers.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/lgidgmIdM-D_gzTT7QlcgW9CDb8/0/da"><img src="http://feedads.g.doubleclick.net/~a/lgidgmIdM-D_gzTT7QlcgW9CDb8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/lgidgmIdM-D_gzTT7QlcgW9CDb8/1/da"><img src="http://feedads.g.doubleclick.net/~a/lgidgmIdM-D_gzTT7QlcgW9CDb8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/54R7yOZ2uOs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/obxodimsya-bez-sysutils-fileexists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/obxodimsya-bez-sysutils-fileexists/</feedburner:origLink></item>
		<item>
		<title>mr.gen v01</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/ewSgGPar9YI/</link>
		<comments>http://parsers.info/2009/05/mrgen-v01/#comments</comments>
		<pubDate>Sun, 10 May 2009 13:46:37 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Софт]]></category>
		<category><![CDATA[генератор]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=287</guid>
		<description><![CDATA[
mr.gen v0 &#8211; если кто не видел.
В той теме оставил сообщение человек, которому нужно сгенерировать большой список. Программа вылетала с ошибкой out of memory, что неудивительно &#8211; все комбинации записывались в массив. Это моя оплошность, следовало предвидеть такую необходимость, даже учитывая то, что данный генератор призван работать с большими списками.

Я, как очень крутой и отзывчивый [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://parsers.info/screen/mrgen.PNG" alt="mr.gen - генератор паролей по маске" /><br />
<a href="http://parsers.info/2009/02/mrgen-v0">mr.gen v0</a> &#8211; если кто не видел.<br />
В той теме оставил сообщение человек, которому нужно сгенерировать <strong>большой список</strong>. Программа вылетала с ошибкой <strong>out of memory</strong>, что неудивительно &#8211; все комбинации записывались в массив. Это моя оплошность, следовало предвидеть такую необходимость, даже учитывая то, что данный <strong>генератор</strong> призван работать с большими списками.<br />
<span id="more-287"></span><br />
Я, как очень крутой и отзывчивый чел, исправил свою ужасающую и печальную оплошность. <strong>Out of memory</strong> теперь не вылетит &#8211; в массив ничего не пишется &#8211; теперь программа сразу пишет в файл.</p>
<p>Дизайн практически не изменился.</p>
<p><a href="http://parsers.info/pub/mr.gen.v01.exe">скачать</a></p>
<p>Если использовал старую версию &#8211; отпишись, стало ли быстрее или осталось, как и было, &#8211; буду благодарен.</p>
<p>crystalbit, <a href="http://parsers.info">http://parsers.info</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/8l-ufouH3TEwCe_rm_Entp76H30/0/da"><img src="http://feedads.g.doubleclick.net/~a/8l-ufouH3TEwCe_rm_Entp76H30/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8l-ufouH3TEwCe_rm_Entp76H30/1/da"><img src="http://feedads.g.doubleclick.net/~a/8l-ufouH3TEwCe_rm_Entp76H30/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/ewSgGPar9YI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/mrgen-v01/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/mrgen-v01/</feedburner:origLink></item>
		<item>
		<title>Обходимся без SysUtils. Строка  число</title>
		<link>http://feedproxy.google.com/~r/parsers/~3/eLU3H1Mc-Z4/</link>
		<comments>http://parsers.info/2009/05/obxodimsya-bez-sysutils-stroka-chislo/#comments</comments>
		<pubDate>Tue, 05 May 2009 17:36:27 +0000</pubDate>
		<dc:creator>crystalbit</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[типы]]></category>

		<guid isPermaLink="false">http://parsers.info/?p=282</guid>
		<description><![CDATA[
Многие пользуются функциями StrToInt, TryStrToInt и IntToStr из модуля SysUtils для преобразования типов. Это удобно, но когда встает вопрос об отключении лишних модулей (когда пишем на api), непрактично.

Для таких же целей есть стандартные функции val и str из pascal, которые перекочевали в delphi, но о наличии которых в нём многие не подозревают. Писал я как-то [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://parsers.info/wp-content/uploads/2009/05/api1.png" alt="Обходимся без SysUtils. Строка - число" title="StrToInt, TryStrToInt, IntToStr без использования SysUtils" width="292" height="181" class="aligncenter size-full wp-image-283" /><br />
Многие пользуются функциями <strong>StrToInt</strong>, <strong>TryStrToInt</strong> и <strong>IntToStr</strong> из модуля SysUtils для преобразования типов. Это удобно, но когда встает вопрос об отключении лишних модулей (когда пишем на api), непрактично.<br />
<span id="more-282"></span><br />
Для таких же целей есть стандартные функции <strong>val</strong> и <strong>str</strong> из pascal, которые перекочевали в delphi, но о наличии которых в нём многие не подозревают. Писал я как-то одну консольную программу, вот и встал лицом к лицу с этой задачей. Для удобства написал аналоги дельфийский функция с использованием <strong>val</strong> и <strong>str</strong>.</p>
<h3>StrToInt</h3>
<pre name="code" class="delphi">
function StrToInt(s:string):integer;
var
  t:integer;
  c:integer;
begin
  val(s,t,c);
  if c=0 then
    Result:=t
  else
    Result:=0;
end;
</pre>
<h3>TryStrToInt</h3>
<pre name="code" class="delphi">
function TryStrToInt(s:string;var i:integer):boolean;
var
  t:integer;
  c:integer;
begin
  val(s,t,c);
  if c=0 then begin
    i:=t;
    Result:=True;
  end else
    Result:=False;
end;
</pre>
<h3>IntToStr</h3>
<pre name="code" class="delphi">
function IntToStr(i:integer):string;
var
  s:string;
begin
  Str(i,s);
  Result:=s;
end;
</pre>
<p><a href="http://parsers.info">http://parsers.info</a>, crystalbit<br />
еще у нас есть <a href="http://feeds2.feedburner.com/~r/parsers/~6/1">rss</a> и это круто</p>

<p><a href="http://feedads.g.doubleclick.net/~a/bioL2ixY0x7_f3Yu9fqszdz7sac/0/da"><img src="http://feedads.g.doubleclick.net/~a/bioL2ixY0x7_f3Yu9fqszdz7sac/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bioL2ixY0x7_f3Yu9fqszdz7sac/1/da"><img src="http://feedads.g.doubleclick.net/~a/bioL2ixY0x7_f3Yu9fqszdz7sac/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/parsers/~4/eLU3H1Mc-Z4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://parsers.info/2009/05/obxodimsya-bez-sysutils-stroka-chislo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://parsers.info/2009/05/obxodimsya-bez-sysutils-stroka-chislo/</feedburner:origLink></item>
	</channel>
</rss>
