Читаем C# 4.0: полное руководство полностью

/* MiniCrawler: скелетный вариант поискового робота.

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

MiniCrawler http://McGraw-Hill.com

*/

using System;

using System.Net;

using System.IO;

class MiniCrawler {

  // Найти ссылку в строке содержимого,

  static string FindLink(string htmlstr,

    ref int startloc) {

    int i;

    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) {

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных