LibKing » Книги » comp-programming » Герберт Шилдт - C# 4.0: полное руководство

Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО "И.Д. Вильямс", год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Герберт Шилдт - C# 4.0: полное руководство
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО "И.Д. Вильямс"
  • Год:
    2011
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.92/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

int start, end;

string uri = null;

i = htmlstr.IndexOf("href=\"http", startloc,

StringComparison.OrdinalIgnoreCase);

if (i != -1) {

start = htmlstr.IndexOf('"', i) + 1;

end = htmlstr.IndexOf('"', start);

uri = htmlstr.Substring(start, end - start);

startloc = end;

}

return uri;

}

static void Main(string[] args) {

string link = null; string str; string answer;

int curloc; // содержит текущее положение в ответе

if (args.Length != 1) {

Console.WriteLine("Применение: MiniCrawler ");

return;

}

string uristr = args[0]; // содержит текущий URI

HttpWebResponse resp = null;

try {

do {

Console.WriteLine("Переход по ссылке " + uristr);

// Создать объект запроса типа WebRequest по указанному URI.

HttpWebRequest req = (HttpWebRequest)

WebRequest.Create(uristr);

uristr = null; // запретить дальнейшее использование этого URI

// Отправить сформированный запрос и получить на него ответ,

resp = (HttpWebResponse)req.GetResponse();

Stream istrm = resp.GetResponseStream();

// Заключить поток ввода в оболочку класса StreamReader.

StreamReader rdr = new StreamReader(istrm);

// Прочитать всю страницу,

str = rdr.ReadToEnd();

curloc = 0;

do {

// Найти следующий URI для перехода по ссылке,

link = FindLink(str, ref curloc);

if (link != null) {

Console.WriteLine("Найдена ссылка: " + link);

Console.Write("Перейти по ссылке, Искать дальше, Выйти?");

answer = Console.ReadLine();

if (string.Equals(answer, "П", StringComparison.OrdinalIgnoreCase)) {

uristr = string.Copy(link); break;

}

else if (string.Equals(answer, "B", StringComparison.OrdinalIgnoreCase)) {

break;

}

else if (string.Equals(answer, "И", StringComparison.OrdinalIgnoreCase)) {

Console.WriteLine("Поиск следующей ссылки.");

}

}

else {

Console.WriteLine("Больше ссылок не найдено.");

break;

}

} while (link.Length > 0);

// Закрыть ответный поток,

if (resp != null) resp.Close();

} while (uristr != null);

}

catch (WebException exc) {

Console.WriteLine("Сетевая ошибка: " + exc.Message +

"Код состояния: " + exc.Status);

}

catch (ProtocolViolationException exc) {

Console.WriteLine("Протокольная ошибка: " + exc.Message);

}

catch (UriFormatException exc) {

Console.WriteLine("Ошибка формата URI: " + exc.Message);

}

catch (NotSupportedException exc) {

Console.WriteLine("Неизвестный протокол: " + exc.Message);

}

catch (IOException exc) {

Console.WriteLine("Ошибка ввода-вывода: " + exc.Message);

}

finally {

if (resp != null) resp.Close();

Console.WriteLine("Завершение программы MiniCrawler.");

}

}

}

Ниже приведен пример сеанса поиска, начиная с адреса www .McGraw-Hill. com. Следует иметь в виду, что конкретный результат поиска зависит от состояния содержимого на момент поиска.

Переход по ссылке http://mcgraw-hill.com

Найдена ссылка: http://sti.mcgraw-hill.com:9000/cgi-bin/query?mss=search&pg=aq

Перейти по ссылке, Искать дальше, Выйти? И

Поиск следующей ссылки.

Найдена ссылка: http: //investor .mcgraw-hill. com/phoenix. zhtml?c=96562&p=irol-irhome

Перейти по ссылке,Искать дальше, Выйти? П

Переход по ссылке http://investor.mcgraw-hill .com/phoenix. zhtml?c=96562&p=irol-irhome

Найдена ссылка: http://www.mcgraw-hill.com/index.html

Перейти по ссылке, Искать дальше, Выйти? П

Переход по ссылке http://www.mcgraw-hill.com/index.html

Найдена ссылка: http://sti.mcgraw-hill.com:9000/cgi-bin/query?mss=search&pg=aq

Перейти по ссылке, Искать дальше, Выйти? В

Завершение программы MiniCrawler.

Рассмотрим подробнее работу программы MiniCrawler. Она начинается с ввода пользователем конкретного URI в командной строке. В методе Main()этот URI сохраняется в строковой переменной uristr. Затем по указанному URI формируется запрос, и переменной uristrприсваивается пустое значение, указывающее на то, что данный URI уже использован. Далее отправляется запрос и получается ответ. После этого содержимое читается из потока ввода, возвращаемого методом GetResponseStream()и заключаемого в оболочку класса StreamReader. Для этой цели вызывается метод ReadToEnd(), возвращающий все содержимое в виде строки из потока ввода.

Далее программа осуществляет поиск ссылки в полученном содержимом. Для этого вызывается статический метод FindLink(), определяемый в программе MiniCrawler. Этот метод вызывается со строкой содержимого и исходным положением, с которого начинается поиск в полученном содержимом. Эти значения передаются методу FindLink()в виде параметров htmlstrи startlocсоответственно. Обратите внимание на то, что параметр startlocотносится к типу ref. Сначала в методе FindLink()создается копия строки содержимого в нижнем регистре, а затем осуществляется поиск подстроки href="http, обозначающей ссылку. Если эта подстрока найдена, то URI копируется в строковую переменную uri, а значение параметра startlocобновляется и становится равным концу ссылки. Но поскольку параметр startlocотносится к типу ref, то это приводит к обновлению соответствующего аргумента метода Main(), активизируя поиск с того места, где он был прерван. В конечном итоге возвращается значение переменной uri. Эта переменная инициализирована пустым значением, и поэтому если ссылка не найдена, то возвращается пустая ссылка, обозначающая неудачный исход поиска.

Если ссылка, возвращаемая методом FindLink(), не является пустой, то она отображается в методе Main(), и далее программа запрашивает у пользователя очередные действия. Пользователю предоставляются одна из трех следующих возможностей: перейти по найденной ссылке, нажав клавишу <���П>, искать следующую ссылку в имеющемся содержимом, нажав клавишу <���И>, или же выйти из программы, нажав клавишу <���В>. Если пользователь нажмет клавишу <���П>, то программа осуществит переход по найденной ссылке и получит новое содержимое по этой ссылке. После этого поиск очередной ссылки будет начат уже в новом содержимом. Этот процесс продолжается до тех пор, пока не будут исчерпаны все возможные ссылки.

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img