<system.webServer>
<defaultDocument>
<files>
<clear/>
<add value="~/Default.htm"/>
</files>
</defaultDocument>
<system.webServer>
неділя, 27 березня 2011 р.
Default Documents in IIS 7
четвер, 24 березня 2011 р.
Маленький helper-метод
public static bool eq(this string s, string s2)
{
return string.Compare(s, s2, true) == 0;
}
Use:
if(url.eq("/Default.aspx"))
{
...
}
вівторок, 22 березня 2011 р.
CultureInfo
en-GB - специфическая
ro - нейтральная
ro - нейтральная
var c = "ro";
//создаем специфическую с нейтральной
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(c);
//можно использовать нейтральную, например, Strings.ro.resx
Thread.CurrentThread.CurrentUICulture = new CultureInfo(c);
пʼятниця, 18 березня 2011 р.
.NET парсер HTML
Стояла задача: вытянуть данные из таблицы в .mht документе.
Сначала подумал решить на C#+Regex, но потом нарыл парсер Html Agility Pack. Спасибо автору:).
Вот как я это сделал:
Результат:
Сначала подумал решить на C#+Regex, но потом нарыл парсер Html Agility Pack. Спасибо автору:).
Вот как я это сделал:
private void MainForm_Load(object sender, EventArgs e)
{
try
{
var file = @"C:\демпинг.mht";
var contentHex = File.ReadAllText(file, Encoding.GetEncoding(1251));
var content = Regex.Replace(contentHex, @"=[0-9A-F]{2}", m => HexStringToUtf8(m.ToString().Substring(1)));
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(content);
var table = doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/table[1]");
if(table == null) throw new Exception("data not found");
var rows = table.SelectNodes("tbody/tr").Skip(1).ToList();
var data = (from r in rows
let tds = r.SelectNodes("td")
select new
{
N = tds[0].InnerText,
Group = tds[1].InnerText,
Product = tds[2].InnerText,
OurPrice = tds[3].InnerText,
AveragePrice = tds[4].InnerText,
Difference = tds[5].InnerText,
DifferencePercent = tds[6].InnerText,
Offers = tds[7].InnerText,
Shops = tds[7].Attributes["title"].Value,
MinPrice = tds[8].InnerText,
MaxPrice = tds[9].InnerText
}).ToList();
grid.DataSource = data;
}
catch(Exception exc)
{
MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private string HexStringToUtf8(string hexString)
{
var bytes = new List();
for(int i = 0; i <= hexString.Length - 2; i += 2)
{
bytes.Add(byte.Parse(hexString.Substring(i, 2), System.Globalization.NumberStyles.HexNumber));
}
var str = Encoding.GetEncoding(1251).GetString(bytes.ToArray());
return str;
}
Результат:
четвер, 10 березня 2011 р.
Float blocks
/* Firefox 2 */
display: -moz-inline-stack;
/* IE 8, Firefox 3, Opera, Safari, Chrome */
display: inline-block;
vertical-align: top;
/* IE 6 и 7 */
zoom: 1;
*display: inline;
Source
пʼятниця, 4 березня 2011 р.
Несколько полезных примеров регулярок
foo – Слово foo
^foo – Наичнается с foo
foo$ - Кончается с foo
^foo$ - Точное совпадение с foo
[abc] – a, b или c
[a-z] – Любая строчная буква
[^A-Z] - Любой символ не в верхнем регистре
(gif|jpg) - Совпадает либо gif либо jpeg
[a-z]+ - Одна или более строчных букв
[0-9.-] - Любое число, точка или минус
^[a-zA-Z0-9_]{1,}$ – Любое слово, в котором как минимум одна буква, число или _
([wx])([yz]) - wy, wz или xy, xz
[^A-Za-z0-9] – Любой символ (не буква и не цифра)
([A-Z]{3}|[0-9]{4}) - Совпадает три буквы или четыре цифры
Взято тут
^foo – Наичнается с foo
foo$ - Кончается с foo
^foo$ - Точное совпадение с foo
[abc] – a, b или c
[a-z] – Любая строчная буква
[^A-Z] - Любой символ не в верхнем регистре
(gif|jpg) - Совпадает либо gif либо jpeg
[a-z]+ - Одна или более строчных букв
[0-9.-] - Любое число, точка или минус
^[a-zA-Z0-9_]{1,}$ – Любое слово, в котором как минимум одна буква, число или _
([wx])([yz]) - wy, wz или xy, xz
[^A-Za-z0-9] – Любой символ (не буква и не цифра)
([A-Z]{3}|[0-9]{4}) - Совпадает три буквы или четыре цифры
Взято тут
Підписатися на:
Дописи (Atom)