Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 188

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 188 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 1882019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 188)

Эта коллекция специально предназначена для хранения пар "имя-зиачение" и применяется аналогично любой другой коллекции (подробиее об этом см. в главе 24). Строковый массив имен может быть получен из свойства )(11Кеуз, а отдельные значения — по соответствующему имени при вызове метода 6ест/а1пез () . Этот метод возвращает массив стротс содержащий значения, связаииые с заголовком, передаваемым в качестве аргумента. Метод бегт/а1пез () перегрУжается, чтобы привять числовой индекс или имя заголовка.

В приведенной ниже программе отображаются заголовки, связанные с сетевым ресурсом, доступным по адресу ыын. Мсбгаы-Н111. сов. 932 Часть П. Библиотека С» Доступ к сооЫе-наборам Для доступа к сооЫе-наборам, получаемым в ответ по протоколу НТТР служит свойство Соокаея, определенное в классе НссриеЬНеяропзе. В сооЫе-наборах содержится информация, сохраняемая браузером. Оии состоят из пар "имя — значение" и упрощают некоторые виды доступа к веб-сайтам. Ниже показано, каким образом определяется свойство СооК1ея, риЬ11с Сооь1есо11еск1оп Сооиьея ( Чеке яек; ) В классе Соо)с1еСо11есг1оп реализуются интерфейсы 1Со11есдаоп и 1ЕппюегаЬ1е, и поэтому его можно использовать аналогично классу любой другой коллекции (подробнее об этом см.

в главе 24). У этого класса имеется также иидексатор, позволяющий получать сооЫе-иабор по указанному индексу или имени. В коллекции типа соок1есо11ессаоп хранятся объекты класса соокае. В классе Соох1е определяется несколько свойств, предоставляющих доступ к различным фрагментам информации, связанной с сооЫе-набором. Ниже приведены два свойства, Наюе и т/а1ие, используемые в примерах программ из этой главы. рпвььс леггорн вазе ( дека яект ) риььгс якгьпд Оа1ие ( сект яект ) Имя сооЫе-Набора содержится в свойстве наюе, а его значение — в свойстве (та1пе. Для того чтобы получить список сооЫе-Наборов из принятого ответа, необходимо предоставить сооЫе-коптейиер с запросом. И для этой цели в классе нссриеьнес)пеяс определяется свойство Соок1еСопдаапег, приведенное ниже.

рпвьгс СоохаеСопСаапег Соох(есопСа(пег ( сект яек," ) В классе Соо)к1еСопбаапег предоставляются различные поля, свойства и методы,позволяющие хранить сооЫе-иаборы. По умолчанию свойство соох1еСоппаапег содержит пустое значение. Для того чтобы воспользоваться сооЫе-наборами, необходимо устаиовить это свойство равным экземпляру класса Соох1еСопга1пег. Во многих приложениях свойство СоокаеСопдаапег ие применяется непосредственно, а вместо него из принятого ответа составляется и затем используется коллекция типа соо)г1есо11есс1оп.

Свойство Соок1есопса1пег просто обеспечивает внутренний механизм сохранения сооЫе-наборов. В приведенном ниже примере программы отображаются имена и значения сооЫенаборов, получаемых из источника по (з к(, указываемому в командной строке. Следует, однако, иметь в виду, что сооЫе-Наборы используются ие иа всех веб-сайтах, поэтому нужно еще найти такой веб-сайт, который поддерживает сооЫе-наборы. /* Пример проверки соох1е-набороз.

ддя того чтобы проверить, какие именно соои1е-наборы используютоя на зеб-сейте, укажите его имя з командной строке. Так, если назвать зту программу Соохьебезо, то по команде Соо)каевешо Ьккрт//мзп.сов отобразятся соохге-наборы с зеб-сайта по адресу нны.юяп.соз. */ пя1пд Зуясеют Глава 25. Сетееые средстеа подключения к Интернету 933 цягпд Яуясез.нег; с1азз Соон1еоезо ( ягастс чо1б Маго(ясггпд[) агдя) ( 11(агдя,Ьепдгп != 1) ( Сопяо1е.йг1сеьтпе("Применение: Соойгеоезо <нгг>")т гесцгп; ) // Создать обьект запроса типа ИеЬаедиеяс по указанному ОН1.

НссрйеЬаедцеяс гед = (Нссрйепаедцеяс) иеьнедцеяг .сгеаге (агдя ( О) ) т // Получить пустой контейнер. гед.СоонтеСопсагпег пен СоойьеСопса1пег() // Отправить сФормированный запрос и получить на него ответ. НссрИеЬВеяропяе гьяр = (Нссрйебйеяропяе) гед.песнеяропяе()т // Отобразить соон1е-наборы.

Сопяо1е.йггсеьгпе("Количество сосите-наборов: геяр.Соойфея.Соцпс)) Сопяо1е.йгтсеьтпе("(0,-20)(1)", "Имя", "Значение" ); гог(1пс 1=0) 1 < геяр.Соон1ез.Соцпст 1++) Сопяо1е.йггсеьтпе("(О, -20)(1)", геяр.соонтея[1).нате, геяр.сооктея[1).ча1ие)) // Закрыть ответный поток. геяр.С1ояе()т ) ) Применение свойства у.аз~моЖЕ~ес1 Иногда требуется знать, когда именно сетевой ресурс был обновлен в последний раз.

Это нетрудно сделать, пользуясь сетевыми средствами класса нггриеьнеяропяе, среди которых определено свойство Ьазсмот)1г1ес[, приведенное ниже. рцЬ11с оасетгзе ЬаяГМоб111еб ( дест С помотпью свойства ьазсмоб111еб получается время обновления содержимого сетевого ресурса в последний раз. В приведенном ниже примере программы отображаются дата и время, когда был в последний раз обновлен ресурс, указываемый по Г)т<1 в командной строке. /* Использовать свойство Ьаясмоб111еб.

Для того чтобы проверить дату последнего обновления веб-сайта, введите его ОН1 в командной строке. Так, если назвать эту программу Ьаясног(111еаоеио, то для проверки даты последней модификации веб-сайта по адресу ннн.НегЬБсп11бс.соз введите команду 934 Часть Н. Библиотека С№ Ьаевиок(1№ьекп)емо Ьевр: //Иекьясв№1к(Ь. сом */ цвьпд зувкеит цв1пп зувкеи.иеят с1авв Ьавкиот(111ес(пеео ( втакьс тога Ма[п(яккгпд[) агаев) ( 11(агфа.Ьепдкь != 1) ( Сопво1е.иг1кеЬ1пе("Применение: ЬавСМосьтьеопеео <цг1>")т гетцгпт ) Нскриеькепцевк кея = (Нкприеьвепцевь) ХеЬНепцевС.Сгеаяе(акдв[0])т Нккриеькевропве гевр = (Нккриеькевропве) геп.пеСЯевропве()) Сопво1е.икгке11пе("Последняя модификация: " Е гевр.ьавкиоа111ек))т гевр.С1ове()т ) ) Практический пример создания программы М~п~Сгаи!ег Для того чтобы показать, насколько просто программировать для Интернета средствами классов хеьнес[цевс и иеьнеропве, обратимся к разработке скелетиого варианта поискового робота под названием М(п]Сгату)ег.

Поисковый робот представляет собой программу последовательного перехода от одной ссылки на сетевой ресурс к другой. Поисковые роботы применяются в поисковых механизмах для каталогизации содержимого. Разумеется, поисковый робот М]шСгащ!ег не обладает такими развитыми возможностями, как те, что применяются в поисковых механизмах. Эта программа начинается с ввода пользователем конкретного адреса с)21, по которому затем читается содержимое и осуществляется поиск в нем ссылки.

Если ссылка найдена, то программа запрашивает пользователя, желает ли он перейти по этой ссылке к обнаруженному сетевому ресурсу, найти другую ссылку на имеющейся странице или выйти из программы. Несмотря иа всю простоту такого алгоритма поиска сетевых ресурсов, он служит интересным и наглядным примером доступа к Интернету средствами С№.

Программе М[п[Сгату]ег присущ ряд ограничений. Во-первых, в ией обнаруживаются только абсолютные ссылки, указываемые по гипертекстовой команде ьгег= "ьсср. Относительные ссылки при этом ие обнаруживаются. Во-вторых, возврат к предыдущей ссылке в программе не предусматривается.

И в-третьих, в ней отображаются только ссылки, но не окружающее их содержимое. Несмотря на все указанные ограничения данного скелетного варианта поискового робота, он вполне работоспособен Глава 25, Сетевые средства подглюченнл к Ннтернету 935 и может быть без особых хлопот усовершенствован для решения других задач. На самом деле добавление новых возможностей в программу М(п(Стати(ег — 'зто удобный случай освоить на практике сетевые классы и узнать больше о сетевом подключении к Интернету. Ниже приведен полностью код программы М(п(Сгачу)ег. /* М1пгсгаы1ег: скелетный вариант поискового робота. Применение: для запуска поискового робота укажите 'ОН1 в командной строке.

Например, для того чтобы начать поиск с адреса ыын.исогаы-н111.сов, введите следующую команду: ИьпаСкаы1ек 1Шр: //Исйкаы-Н111. сов иягпо Яуясевт ия1по Яуягев.неге ия1по Яуясев.101 с1азз М1пЕСган1ег ( // Найти ссылку в строке содержимого. ясасгс зсгтпо Г1пбвьпн(ясг1пц Ьсв1ясг, геЕ Епс ясагс1ос) ( Епг 1) Епс зсагс, епбт зсгьпс игь = пи111 ясг1пд 1онсазезгг Ьсв1зсг.тоьонег()т г = 1онсаяезгг.1пбехое("ьгее=ч"ьггр", згагг1ос); 1Е(1 )= -1) ( ясагс = Ьсв1зсг.1пбехОЕ('"', 1) ч 11 епб = Ьсв1зсг.1пбехОЕ('"', ясагс); игг = ьгв1згг.Яиьзггьпд(згагг, епб-ягагг); ясагс1ос " епой ) гесигп иг11 зсастс ноги Магд(зсгтпо() агся) ( 5ГГЕпо 11пн пи111 зсг1по вггт ясггпц апянегт Епг сиг1ост // содержит текущее положение в ответе ЕЕ(агоя.ЬепЧГЬ != 1) ( сопзо1е.нгьгеььпе("Применение: м1пЕСгаы1ег <игь>") гесигп т ) зсгтпд игтзсг = агсз(0)т // содержит текущий ОН1 936 часть )).

Библиотека С» ггу ( до ( сопяо1е.игьгеО1пе("переход по ссылке " +иг1вгг)> // Создать объект запроса типа Иепйейиевс // по указанному ОК1. Нгсрнепнейиевс гей = (НссрнеЬКедиевс) ИеЬКейиевГ.Сгеаге(иггвсг)т игавгг = пи11т // запретить дальнейшее использование этого ОК1 // Отправить сформированный запрос и получить на него ответ. НссриеЬКевропве гевр (НГГРИеЬКевропве) гей.бесневропве(); // Получить поток ввода из принятого ответа. яггеаш 1всгш = гевр.оегкевропвезсгеаш()т // Заключить поток ввода в оболочку класса ЯсгеашКеабег.

Бкгеашйеайег гбг = пен Бкгеаюнеадег(гвсгш)т // Прочитать всю страницу. всг " гбг.неабтоЕпб()т сиг1ос О) бо ( // Найти следующий ОК1 для перехода по ссылке. 11пл = Р1пб11пл(вкг, гег сиг1ос)т гг(11пл != пи11) ( сопво1е.игаге11пе("найдена ссылка: " +11пк); Сопво1е.Итаке( "Перейти по ссылке, Искать дальше, Выйти?" ) апвнег = Сопво1е.КеабЕапе() 11(всг1пО.Сошраге(апвнег, "П", Ггие) == О) ( иггвгг = всг1пО.Сору(11пи)) Ьгеаит ) е1ве 11( всг1пО.Сошраге(апвнег, "В", Ггие) == О) ( Ьгеалт ) е1ве 11( вогана.Сошраге (апянег, "И", Ггие) = О) ( Сопво1е.игагетапе("поиск следующей ссылки."); ) ) е1ве ( Сопяо1е.нгасеПТпе("Больше ссылок не найдено."); Ьгеааы ) нЬ11е(11па.Еепдсп > 0) т Глава 25.

Сетевые средства подключения к Интернету 937 // Закрыть ответный поток. тевр.С1озе(); ) чн11е(иттзтт != пи11)? ) сассЬ(неЬЕхсертгоп ехс) ( Сопзо1е.нт1Се11пе("Сетевал ошибка: ехс.меззаде + "1пкод состояния: " + ехс.зсаспв); ) сассь(ртотосо1усо1атгопЕхсерт1оп ехс) ( Сопзо1е.нт1Се11пе("Протокольнав ошибка: " + ехс.Меззаде); ) сатен(птсготшаСЕхсерС1оп ехс) ( Сопво1е.итгсеььпе("Ошибка формата Он1: " + ехс.Меззаде); ) сатсЬ(нотзпрроттебЕхсерттоп ехс) ( Сопво1е.итгсеьгпе("неизвестный протокол: " + ехс.Меззаде); ) сатсЬ(1ОЕхсерСтоп ехс) ( сопво1е.иттсеьапе("Ошибка ввода-вывода: " + ехс.Мевзаде); ) Сопзоте.Итгседвпе ("Завершение программы М1птстач1ет. ") к ) ) Ниже приведен пример сеанса поиска, начиная с адреса ччч.

Мсптач-Н111. сош. Следует иметь в виду, что конкретный результат поиска зависит от состояния содержимого на момент поиска. Переход по ссылке ЬССр://шсдтач-Ь111.сош Найдена ссылка: ЬССр://втт.шсдтач-Ьт11.сош:9000/сдг-Ьыд/ диету?шзв зеатсььрд ад Перейти по ссылке, Искать дальше, Выйти? и Пои~к следупшвй ссылки. найдена ссылка: ьссрк//1пчезсот.шсдтач-ь111.сош/рьоеп1х.ььсш1?с=96562ьр=уто1- ттЬоше Перейти по ссылке, Искать дальше, Выйти? П Переход по ссылке ЬССр://гпчезтот.шсдтач-ЬШ .сош/рьоепгх. зьсш1?с=96562ьр=гто1-гтьоше найдена ссылка: ьсср:Оччч.шсдтач-ь111.сош/1пбех.ьсш1 Перейти о ссылке, Искать дальше, Выйти? П Переход по ссылке Ьсср://ччч.шсдтач-ЬШ .сош/1пбех.ьтш1 Найдена ссылка: Ьсср://втс.шсдтач-Ь111.сош:9000/сдс-Ь1п/ диету?шьз=ьеатсЬьрд=ад Перейти по ссылке, Искать дальше, Вьзлти? В Завершение программы мгпгСтач1ет. Рассмотрим подробнее работу программы М(п(Сгаъ 1ег.

Она начинается с ввода пользователем конкретного 1)К! в командной строке. В методе масп () этот 1)К! сохраняется в строковой переменной птьзст, Затем по указанному УК1 формируется запрос, и переменной иттзст присваивается пустое значение, указывающее на то, что данный 1)К! уже использован. Далее отправляется запрос и получается ответ. После этого содержимое читается из потока ввода, возвращаемого методом песпезропзеЗстеаш () и заключаемого в оболочку класса Зстеашнеас(ет.

Характеристики

Тип файла
DJVU-файл
Размер
6,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее