Интернет решения от доктора Боба - страница 20

стр.

2.2.10. Результаты запроса

Теперь посмотрим на последнюю часть CGI приложения: часть, в которой генерируется HTML код. Здесь я использую другое свойство расширенного HTML, именованные таблицы, что бы вывод выглядел красивее. Для каждой записи, у которой счетчик более единицы, я выводу счетчик, название, автора, издательство, ISBN, уровень, техническое содержание, качество книги, стоимость и общее значение. Я также включаю ссылку из названия на другое место, где находится более подробное описание. С помощью этого великолепного свойства динамических HTML страниц: вы даже можете включать ссылки на статические страницы, так как результат запроса, часто стартовая точка для прыжка в другое место!

>writeln('


');

>writeln('

');

>writeln('

The following books have been found for you:

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

>writeln('

');

После того как заголовок написан, самое время выводить сами записи. Я не хочу сортировать их по рейтингу от 5 до 1, так что я просто иду по списку книг и печатаю каждую со своим рейтингом. Этот путь, потому что я знаю, что книги уже отсортированы по рейтингу в основной базе delbooks.db (которая отсортирована по уровню и рейтингу). Обычно книги в верху списка уже лучший ответ на заданный вопрос.

if DataRec.Delphi2 then

begin

>    for Hits := 5 downto 1 do

>    begin

>      for i:=1 to Books32 do if Result32[i] = Hits then

>      begin

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

')

>      end

>    end;

>    if DataRec.Delphi1 then writeln('

')

end;


if DataRec.Delphi1 then

begin

>    for Hits := 5 downto 1 do

>    begin

>      for i:=1 to Books16 do if Result16[i] = Hits then

>      begin

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

');

>        writeln('

')

>      end

>    end

end;


>  writeln('

HitsTitleAuthorPublisherISBNLevelConWriValTot
',Roman[Hits],'',Book32[i].Title,'',Book32[i].Author,'',Book32[i].Publisher,'',Book32[i].ISBN,'',Level[Book32[i].Level],'',Book32[i].TechnicalContentsQuality,'',Book32[i].QualityOfWriting,'',Book32[i].ValueForMoney,'',Book32[i].OverallAssessment,'
',Roman[Hits],'',Book16[i].Title,'',Book16[i].Author,'',Book16[i].Publisher,'',Book16[i].ISBN,'',Level[Book16[i].Level],'',Book16[i].TechnicalContentsQuality,'',Book16[i].QualityOfWriting,'',Book16[i].ValueForMoney,'',Book16[i].OverallAssessment,'
');

>  writeln('


');

>  writeln('Dr.Bob''s Delphi Clinic');

>  writeln('');

>  writeln('');

>  writeln;

>  Free

>end

2.2.11. Отладка CGI

Страницу HTML с результатом, сгенерированную по запросу мы модем увидеть выполнив CGI приложение. Для этого требуется (персональный) Web сервер. По этому я написал небольшую программу отладки, используя Delphi 2.01 и NetManage HTML control:

2.2.12. Заключение

Я надеюсь, что я показал, как мы можем писать интерактивные Интернет (Интранет) CGI приложения с помощью Delphi 2 используя CGI, WinCGI и Delphi 3 ISAPI/NSAPI Web Modules. Лично я планирую делать многое с помощью Дельфи для Интернет и Интранет.

3. Microsoft WinInet

Многое из того, что вы узнали, позволяет вам писать Интернет приложения с помощью Delphi. Особенно с помощью новых средств в Delphi 3 таких как ActiveForms и Web Modules. Но иногда мы хотим сделать, что еще быстрее и проще. Иногда мы просто хотим загрузить файл из Интернета. В терминах Интернета это означает, что мы хотим использовать FTP (file transfer protocol) клиента. И если вы верите мне, то вам не требуется ни какой FTP клиент, но если вы верите мне, то вы можете написать свой…