Нажми ESC чтобы закрыть

Замена InvokeRequired в WPF

2

Многие, кто занимается многопоточным программированием в Win.Forms, должны хорошо знать, что, для изменения состояния какого либо контрола из потока его — контрол — не создававшего , обязательно должно проверяться свойство контрола InvokeRequired. Код ниже, который может смутить новичков, несомненно давно уже отложился в памяти программистов неоднократно имевших дело с потоками:

Читать далее

Парсим ссылки без nofollow и noindex

6

Недавно встала необходимость спарсить из HTML документа все ссылки, не содержащие в себе атрибут rel=nofollow и не закрытые в noindex. Обычно, эти ссылки выглядят как то так: <noindex><a href=»http://wwwexample.com» rel=»nofollow»>текст ссылки</a></noindex> Задача, как может показаться тривиальная. И правда, отсечь можно простейшей регуляркой типа: <noindex.*?/noindex> Но вот nofollow заставил меня поломать голову. Для начала я решил что простой регулярки типа <a.*?nofollow.*?>.*?</a> Но на практике оказалось, что такой вариант, жадно съедает все между <a и /а> (пока не доберется до nofollow), если встречает ссылку не содержащую nofollow. Поискав на просторах интернета решение своей задачи, ни чего путного так и не нашел, пришлось немножко напрячь голову, чтобы придумать как сделать так, чтобы получить все ссылки, не содержащие этого атрибута. И вот что получилось в итоге: <[^nofollow]*href=\»([^\»]*)\»[^nofollow]*>.*?</a> Такая регулярка собирает все ссылки, не содержащие упоминания nofollow. Вот и все. Надеюсь это поможет сэкономить кому нибудь лишние час-полчаса личного времени, вместо того, чтобы гуглить и/или сидеть в раздумьях 🙂

Читать далее

Кросс-браузерные CSS3

0

CSS3 Please! Поддерживаемые CSS3-правила: border-radius, box-shadow, linear-gradients, rotation, rgba colors и @font-face. Для совместимости с Internet Explorer используются его встроенные фильтры. CSS3 Generator Поддерживает CSS3-правила: border-radius, shadow, text-shadow, rgba colors, @font-face, multiple columns, box sizing и многое другое. Взято с css3.info

Читать далее