Поиск по этому блогу

среда, 25 апреля 2012 г.

Класс Stopwatch

Stopwatch() - предоставляет набор методов и средств, которые можно использовать для точного измерения затраченного времени. На http://msdn.microsoft.com/ предоставляется вот такой вариант. С помощью этого кода можно определить время работы какого-либо приложения. Если его прописать в это приложение (программу).

Stopwatch stopWatch = new Stopwatch();
        stopWatch.Start();
        Thread.Sleep(10000);
        stopWatch.Stop();
        TimeSpan ts = stopWatch.Elapsed;

        
        string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
            ts.Hours, ts.Minutes, ts.Seconds,
            ts.Milliseconds / 10);
        Console.WriteLine("RunTime " + elapsedTime);

P.s. В Windows Forms не работает, когда паралельно используется Timer.




Складывание значений переменной

Задача: есть переменная, в которой есть несколько цифр (например - 78654433), их нужно сложить вместе.
Сначала разбиваем переменную на чары, а потом их складываем в массив и суммируем)


public static void Main()
    {
        int source = 78654433;
 
        char[] sourceChars = source.ToString().ToCharArray();
 
        List<int> nums = new List<int>();
 
        foreach (char s in sourceChars)
        {
            nums.Add(Convert.ToInt32(s.ToString()));
        }
 
        int result = nums.Sum();
 
        Console.WriteLine(result.ToString());
 
        Console.ReadKey();
    }

Сортировка символов в строке

Нашёл пример, как рассортировать строку так, чтобы сначала шли большие буквы, а за ними маленькие.

string s = "aSdFgHjKlOiUyYT";
        s = string.Concat(s.OrderBy(Char.IsLower));
        Console.WriteLine(s);

Удаление повторяющегося символа из массива

Данный код удаляет все повторяющиеся символы из массива, а потом перезаписывает результатт в новый массив.

static void Main()
        {
            var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 4, 6, 8, 9, 0 };
            var newlist = new List<int>(list.Distinct());
            foreach (var i in newlist)
            {
                Console.WriteLine(i);
            }
        }

вторник, 24 апреля 2012 г.

Повторяющаяся цифра

Программа показывает цифру из введённой стркоки, которая появлялась чаще.


int[] mas = new int[10];
            string s = Console.ReadLine();
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i] >= '0' & s[i] <= '9')
                {
                    int n = Int32.Parse(s[i].ToString());
                    mas[n]++;
                }
            }
            int max = 0;
            int no = 0;
            for (int i = 0; i < 10; i++)
                if (mas[i] > max)
                {
                    no = i;
                    max = mas[i];
                }
            Console.WriteLine("Макс часто встречается: " + no);
            Console.ReadKey();

Пояснение к строкам
int n = Int32.Parse(s[i].ToString());
mas[n]++;

в N ложится число
В массиве с индексом N увеличивается значение на 1

Вот как - то так! 

понедельник, 23 апреля 2012 г.

Запрос пароля

Написал простую програмку, которая запрашивает ввести пароль, а затем проверяет его на соответствие с теми паролями, которые заложены в программу. Позже, если будет желание, реализую её в WPF.
Вот собственно код:

воскресенье, 22 апреля 2012 г.

Регулярные выражения в C# часть 3

Проверка имени файла и его расширение

^(([A-Za-z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+  
    (.psd|.png|.tif|.bmp|.gif|.jpg|.jpeg)$  


^(([A-Za-z]:)|(\\{2}\w+)\$?)(.*)+  
    (.psd|.png|.tif|.bmp|.gif|.jpg|.jpeg)$ 

Проверка url

^(http|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}  
    (:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$  

или

http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?  


Проверка емэйла



[.\\-_a-z0-9]+@([a-z0-9][\\-a-z0-9]+\\.)+[a-z]{2,6}
или
^['\\w_-]+(\\.['\\w_-]+)*@['\\w_-]+(\\.['\\w_-]+)*\\.[a-zA-Z]{2,6}$  
или
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*


Регулярные выражения в C# часть 2

Продолжение темы. Пара дополнений + пара примеров.

Классы пространства имен System.Text.RegularExpressions

Capture - Представляет результаты из отдельной записи части выраже-
ния. Capture представляет одну подстроку для отдельной успешной записи.

CaptureCollection - Представляет последовательность подстрок записи.

CaptureCollection возвращает набор записей, сделанных одной группой записи.

Group - Group представляет результаты отдельной группы записи.
Группа записи может записать ноль, одну или более строк в одно совпадение из-за кванторов, таким образом Group предоставляет коллекцию объектов Capture.

GroupCollection - Представляет коллекцию групп записи. GroupCollection возвращает набор групп записи в одном совпадении.

Match - Представляет результаты из отдельного совпадения регулярного выражения.

MatchCollection - Представляет набор успешных совпадений, обнаруженных путем итеративного применения шаблона регулярного выражения к входной строке.

Regex - Представляет постоянное регулярное выражение.

RegexCompilationInfo - Представляет сведения о регулярном выражении, используемые для компиляции регулярного выражения в отдельную сборку.

RegexRunner - Класс RegexRunner является базовым классом для скомпилированных регулярных выражений.

RegexRunnerFactory - Создает класс RegexRunner для скомпилированного регулярного выражения.


Регулярные выражения в C# часть 1

Регулярные выражения предоставляют мощный, гибкий и эффективный метод обработки текста. Обширные возможности сопоставления шаблонов, предоставляемые регулярными выражениями, позволяют быстро анализировать большие объемы текста, отыскивая в них определенные символьные шаблоны, проверять текст на соответствие определенным заранее шаблонам (например, формату адреса электронной почты), извлекать, изменять, заменять или удалять подстроки текста, а также добавлять извлеченные строки в коллекцию для формирования отчетов.
Ну это выписка с http://msdn.microsoft.com/ru-ru/library/hs600312.aspx.
Цель данного поста - записать для себя памятку по регулярным выражениям в C#. Постараться найти и записать примеры реализации регулярных выражений + объяснение, что они делают.