Ввод только цифр в текстовое поле

private void txtNumberField_KeyPress(object sender, KeyPressEventArgs e)
{
//ввод только цифр
if (!(Char.IsDigit(e.KeyChar)))
{
if (e.KeyChar != (char)Keys.Back)
{
e.Handled = true;
}
}
}

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/331372.html
Прокомментировать заметку можно по ссылке выше.

Пакетный конвертер текстов [Win 1251-Unicode UTF-8] и не только

Вот и первое мое быдлокодерское поделие, выкладываемое в публичный доступ.
В общем позвонил мне как-то Панкарь, и пожаловался на то, что пакетные перекодировщики все исключительно за бабло, а ему срочно надо, ибо движок сайта в виндовой кодировке, а надо в Юникоде. И бесплатная версия пакетного перекодировщика, как назло, перекодирует, добавляя BOM, что php-скриптам вредит, и они от слова совсем объявляют забастовку.
В общем решил я это дело подправить. И написать свой пакетный конвертер/перекодировщик текстов. Который и выношу на ваш суд и для бесплатного скачивания.
За дополнения, баги, замечания и т.д. буду благодарен.
Возможности:
— Пакетная перекодировка текстовых файлов
— Создание полного дерева каталогов для перекодированных файлов
— Доступен расширенный список кодировок (все кодировки, доступные объекту Encoding)
— Удаление BOM UTF-8
Скачать с mega.nz
Скачать с моего сайта
Исходники:
Скачать с mega.nz
Скачать с моего сайта
Скриншоты:
На моем сайте
На imgur.com

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/326984.html
Прокомментировать заметку можно по ссылке выше.

INI PARSER, класс для работы с INI-файлами

Без API, все реализовано средствами C#
Подойдет для хранения конфига небольшой программы, для которой XML-когнфиг излишество и не надо совсем.
класс для работы с INI-файлами

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/326786.html
Прокомментировать заметку можно по ссылке выше.

Проверка валидности введенного IP-адреса (V4)

Без использования регулярных выражений.
Пишет мне один старый товарищ, ныне студент, и просит регулярку для проверки валидности IP. Как выяснилось, регулярка оказалась не нужна совсем, т.к. задача поиска IP в тексте неизвестной структуры не стояла. А что такое IP? Да это же просто 4 байта, разделенных точкой. Посему достаточно просто разложить строку на составляющие функцией split(), проверить, сколько строк получилось в результате, и если строк 4 — попытаться каждую сконвертировать в байт. Если все сконвертировались — IP правильный.
bool isValidIP(string IPAddress)
{
     char[] ch = new char[1]; //Разделители для функции split
     ch[0] = '.'; //у нас 1 - точка
     string[] IPArr = IPAddress.Split(ch); //разделяем строку на составляющие и записываем в массив
     if (IPArr.Length != 4) return false; //если длина не 4 ровно, значит точно не IP
          byte b = 0; //временная переменная для результата конверсии
          bool res = false;//временная переменная флага, прошла ли конверсия удачно
          for (int i = 0; i < 4; i++) //прогоняем все элементы массива через конверсию           {                res = byte.TryParse(IPArr[i], out b); //пытаемся сконвертировать                if (!res) return false; //если функция вернула false, значит элемент массива не байт. Возвращаем false           }      return true; //если до этого нигде не вывалились, это IP, возвращаем true }

Вариант проверки с использованием класса Convert и обработкой исключений:
Read more...
Вариант 1 на pastebin
Вариант 2 на pastebin
демо
static class с функциями отдельно

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/291094.html
Прокомментировать заметку можно по ссылке выше.

Класс для работы с диапазонами чисел.

Точнее, написать надо было класс, который сможет проанализировать строку, где через запятую перечислены числовые значения, как одиночные, так и заданные отрезками: НачальноеЧислоКонечноеЧисло.
НачальноеЧисло должно быть меньше КонечноеЧисло.
Например: 1, 114, 21-30. И в дальнейшем показать, входит ли заданное значение в ранее установленный диапазон. Но заодно уж добавил и остальные функции. Строки такие, например, встречаются в окне печати Word (номера страниц)
Свойства класса:
bool AllowRepeats — В случае истинности значения AllowRepeats в диапазоне разрешены повторы значений.
2 конструктора — 1 создает класс с AllowRepeats==true, 2 позволяет задать AllowRepeats
Методы:
AddInDiapason (long Value) — Добавляет в диапазон значение Value
AddInDiapason(long StartValue, long EndValue) — Добавляет в диапазон значения, начиная со StartValue и заканчивая EndValue включительно
AddFromString(string DiapasonString) — добавляет в диапазон значения из вышеописанной строки, если не получилось возвращает false.
Clear() — Очищает значения диапазона
InDiapasonCount(long Value) — Возвращает, сколько раз встречается значение Value в диапазоне.
SortDiapason(SortOrder Order) — Сортирует диапазон по возрастанию или убыванию в зависимости от заданного параметра Order
SortOrder описана как:

public enum SortOrder
{
byAscending = 0,
byDescending = 1
}


ToArray() — Возвращает массив, содержащий значения диапазона.
InDiapason(long Value) — Проверяет, входит ли значение Value в диапазон (возвращает true или false)
GetIndexes(long Value) — Получает индексы элементов, равных значению Value
RemoveAt(int Index) — Удаляет элемент с индексом Index, генерирует исключение если индекс вне диапазона.
Remove(long Value) — Удаляет из диапазона все значения Value
Remove(long StartValue, long EndValue) — Удаляет из диапазона все значения, начиная со StartValue и заканчивая EndValue
RemoveInDiapason(string DiapasonString) — Удаляет из диапазона все значения, заданные строкой DiapasonString
GetValue(int Index) — Возвращает значение элемента с индексом Index
SetValue(int Index, long Value) — Устанавливает элементу с индексом Index значение Value
ReplaceValue(long OldValue, long NewValue) — Заменяет в диапазоне значения равные OldValue на значения NewValue
MaxValue(out long Value) — Возвращает максимальное значение элемента диапазона в переменную Value. Возвращает false в случае, если диапазон не заполнен значениями.
MinValue(out long Value) — Возвращает минимальное значение элемента диапазона в переменную Value. Возвращает false в случае, если диапазон не заполнен значениями.
Скачать исходник класса
Скачать демо

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/192739.html
Прокомментировать заметку можно по ссылке выше.

Калькулятор регулярных выражений

Накодилось тут, случайно, походу другого проекта.
-можно ввести регулярное выражение, паттерн, и строку замены Match.Result
— ищет все совпадения в паттерне и выдает их и результат работы Match.Result
— умеет замену (Regex.Replace)
-умеет IsMatch
-умеет сохранять данные в файл и загружать их.
Visual Studio 2008
.NET Framework 2.0
Программа (Yandex.Disk)
Исходник (Yandex.Disk)
Программа (Mega.nz)
Исходник (Mega.nz)
UPD: Появилась еще идея, навеянная LovinGOD’ом все-таки накодить утилиту, занимающуюся учетом рабочего времени, она же напоминалка о регулярных делах, она же органайзер. Но это позже. Я ж не работаю и бухгалтерия мне особо не нужна.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/190132.html
Прокомментировать заметку можно по ссылке выше.