Архив: Кодинг
Привет. Сегодня выкладываю исходник первой версии удачной на мой взгляд программы mr.gen.
Суть программы: мы вводим определённую маску, программа генерирует текстовый файл с нужными нам комбинациями символов. Чем программма уникальна? Мы можем задать все возможные варианты каждого символа, а программа выдаст все возможные варианты строки с символами во всех возможных их вариантах.
Очень много направлений, в которых программу можно доделать, – mr.gen ...more»
Ровно три года назад (ого! – сам думаю, как быстро время летит) написал и выложил на блог программу reparser.
Блог уже давно на автономном существовании, нет времени писать. Программирование ушло на второй, если не третий, план – я теперь работаю инженером-конструктором, уже на второй работе. Раньше проектировал сварные металлоконструкции из стальных профильных труб (квадратных и прямоугольных), а теперь – более точные ...more»
Привет. В delphi для работы с буфером обмена есть модуль ClipBoard, ещё можно работать с буфером через api. Но мы сегодня не будем углубляться в работу с буфером. Наша задача - отследить изменение буфера обмена.
Это всё сводится к обработке сообщения WM_DRAWCLIPBOARD, но дело в том, что никто просто так нам его не отправит.
Немного теории.
Есть такое понятие, как "Clipboard chain" - ...more»
Иногда может потребоваться определить этот небезызвестный показатель в своей программе.
Задавшись этим вопросом, полез смотреть, с каких страниц его можно спарсить. Первое, что попадается, это картинка, которая показывается при просмотре аттестата WebMoney (например, вот эта). Далее в заметке буду использовать wmid 000000000000 для примера. Можно и картинку распознать - не вопрос, но зачем так сложно?
Побродив немного по форумам и прочим ссылкам ...more»
Сегодня начну пост с того, что недавно пришлось восстановить блог с бэкапа не первой свежести. Связано это с тем, что хостинг прогорел, а я был в области и не успел сделать бэкап.
Пропали некоторые последние комментарии и один пост, про то, что блог теперь уже не dofollow, но все комментарии, сделанные до того поста, остались dofollow.
Плюс хочу выразить благодарность пользователю Alex, ...more»
Итак, ребятки, чуть больше года назад, выложил я свою наработку - сороковую симфонию Моцарта из внутреннего динамика.
Программа просто запускалась и звучала. Звучала, как надо.
В те времена я ничего не понимал в нотах (и в таких сферах жизни, как работа водителя в Казахстане, к слову, тоже ничего не понимал, как и сейчас). С тех пор научился играть на гитаре, немного развил ...more»
Написал нехитрую программку для заполнения форм и прочего из буфера обмена. Принцип очень простой:
Открываем, редактируем список из строк и оставляем поверх всех окон. Изначально выделена первая строчка, она находится уже в буфере обмена. Нажимая Shift-Insert, мы можем это, очевидно, куда-либо вставить.
Программа перехватывает нажатие Shift-Insert и, когды ты уже отпустил, копирует в буфер следующее значение.
То есть, с достаточной подготовкой, можно быстро ...more»
Привет! В одной из предыдущих статей мы перечисляли все компоненты определённого типа на форме, мы могли присвоить им одно и то же свойство, получить их содержание и так далее.
А что если, например, у нас на форме штук 20 TPanel, и нам нужно у пяти из них поменять высоту?
Передо мной сейчас как раз и встала такая задача.
Всё очень просто:
Выделяем нужные компоненты ...more»
Привет! Давно не писал :)
Как известно на главной странице pr-cy.ru есть даты обновлений тИЦ, pr и яндекс выдачи. Я, как и многие, часто захожу туда, дабы проверить, не обновилось ли что-нибудь.
Сегодня напишем небольшую программу-пример, показывающую, как получить эти даты.1) Сперва заходим на сайт, видим:
Три даты. Чтож, ТЗ есть.
Теперь смотрим исходный код фрагмента:
<p><span class="blue">G</span><span class="red">o</span><span class="yellow">o</span><span class="blue">g</span><span class="red">le</span> <span class="lar">PR</span><span class="date"><acronym ...more»
Приветствую. В завершение цикла заметок про объект Sender и операторы as и is хотелось бы затронуть и конструкцию тип(переменная). Далее поговорим про различия с объект as тип.
В посте о Sender: TObject я рассмотрел использование объекта Sender, который передаётся процедуре-обработчику.
Приведение и проверку типа объекта с помощью as и is я также рассмотрел в своё время, а сегодня поговорим о подобной конструкции:
procedure ...more»
Модуль для определения google pagerank на delphi. Сам модуль и описание дальше.
Привет! Мне однажды потребовалось определить тИЦ и pagerank в одной программе на delphi. Полез в интернет, посмотрел, как происходит определение. Вот для тИЦ проблем нет - нужно всего лишь подставить адрес нужного сайта в запрос и пропарсить xml результат. С pagerank ситуация другая: google не хочет, чтобы каждый ...more»
В недавнем примере мы делали http-запрос с помощью синхронного сокета. Мы обращались к конкретному серверу, зная его ip. Непорядок, сегодня займёмся определением ip-адреса по доменному имени, по адресу сайта.
MSDN по крайней мере предлагает нам две функции для таких операций. Первая - функция gethostbyname, вторая - функция getaddrinfo. Microsoft рекомендует использовать getaddrinfo, учитывая при том, что она появилась в winsock 2. ...more»
Необходимо, чтобы в TEdit пользователь мог ввести только цифры? Я часто встречаю различные решения данной задачи, которые в основном сводятся к обработке события OnKeyPress. Сегодня рассмотрим кардинально другой подход - изменение стиля TEdit с помощью WinApi.
Итак, как же чаще всего фильтруют? Этот способ я даже встречал в каких-то официальных исходниках-примерах от borland.
Суть метода состоит в том, чтобы обрабатывать событие OnKeyPress, ...more»
Привет. Сегодня хочу рассмотреть построчную работу с файлом. Использовать будем стандартный паскалевский ввод/вывод: writeln и readln.
Например, перед нами задача: убрать от одного до десяти первых символов в каждой строке. Кстати, передо мной эта задача вчера реально встала, и я написал программу за 5 минут. Теперь и мы с тобой рассмотрим процесс написания.
Итак, сегодня будем писать со всеми прелестями delphi, читай ...more»
Привет! Это второй пост, который был потерян когда-то в июле в связи с переездом на другой хостинг.
Речь пойдёт о так называемом Screen Buffer.
Консольное окно само по себе имеет определенные размеры, обычно 24 на 80 символов.
Также справа есть полоса прокрутки, с помощью неё можно увидеть то, что вышло за рамки экрана, так как когда мы всё пишем и пишем, например с ...more»
JavaScript? JavaScript??? А как же delphi? Ведь это же delphi блог!
Спокойно, сейчас объясню :) В июле 2009 года менял хостинг, по некоторым причинам не мог получить backup базы блога, а последний, что я делал регулярно, был не очень свеж. В результате потерял три поста. С этой потерей уже давно смирился, а сегодня был приятно удивлён, обнаружив их на своём фиде. ...more»
Привет, ты наверняка уже наслышан о недавно появившемся вирусе Piggy. Если не в курсе, буду краток: он использует принцип спама по цепочке.
Вот тебе приходит ссылка от человека, мол, flash игра прикольная. Ты пишешь, мол, ага, знаем, спам. И тебе в ответ: нет, мол, не спам, ага. Качаешь, так как немного пьян, и с твоим номером происходит то же самое: пароль ...more»
Сегодня хочу начать цикл заметок о winsock. Около года назад я этим заинтересовался, потом незаслуженно забыл и забросил.
WinSock - достаточно мощный инструмент, основа всех основ. Если ты пишешь программу на чистом api, тебе важен конечный размер программы или работаешь с хитрым протоколом, то сокеты просто незаменимы. В этой заметке рассмотрим, как открыть сокет и послать GET запрос серверу.
Типы сокетов
Вкратце. Есть ...more»
Читая иностранные блоги, наткнулся на пост, в котором поднимается проблема парсинга и отображения в TStringGrid tsv файлов (tab-separated values - значения, разделенные символом табуляции, англ.). В таких файлах элементы в строках разделены знаком табуляции (девятым символом). Также не хочется забывать про не менее популярный формат csv - comma-separated values - в нём элементы разделены запятой. Стоит сказать, что программы для ...more»
Будь мой блог не delphi блог и будь его адрес не parsers.info, я бы никогда не стал массово получать адреса rss лент со списка сайтов.
Программа консольная, использует модуль httpsend из библиотек synapse (Vlad рекомендует этот модуль, проверим?). Также пришлось подключать Classes, так как его использует httpsend, а так как мы его подключили, то и с записью в файл мудрить не ...more»















