Delphi. Учимся на примерах - [38]
>begin
> status1.Lines.Add('Подключено');
> //локальный ip-адрес
> status1Lines.Add('IP клиента: ' + ftp.LocalIP);
> //удаленный ip-адрес
> status1Lines.Add('IPсервера: ' + ftp.RemoteIP);
>end;
>procedure TForm1.ftpConnectionFailed(Sender: TObject);
>begin
> status1.Lines.Add('He удалось подключиться к серверу');
>end;
>procedure TForm1.ftpInvalidHost(var Handled: Boolean);
>begin
> status1.Lines.Add('Ошибка при подключении к серверу');
>end;
>procedure TForm1.ftpSuccess(Trans_Type: TCmdType);
>begin
> status1.Lines.Add('Успешно');
>end;
>procedure TForm1.ftpTransactionStart(Sender: TObject);
>begin
> status1.Lines.Add('Начало передачи данных');
>end;
>procedure TForm1.ftpTransactionStop(Sender: TObject);
>begin
> statusl.Lines.Add('Конец передачи данных');
>end;
>procedure TForm1.ftpAuthenticationFailed(var Handled: Boolean);
>begin
> status1.Lines.Add('Неверное имя или пароль');
>end;
>procedure TForm1.Button2Click(Sender: TObject);
>begin
> if ftp.Connected then//если соединен
> ftp.Disconnect;//отключиться от сервера
>end;
>procedure TForm1.Button3Click(Sender: TObject);
>var
> i: integer;
> FName, temp: string; //для получения имени файла
>begin
> if not Open1.Execute then ShowMessage('Файл не выбран!')
> else begin
> //очищаем переменные, которые содержат имя файла
> temp:= '';
> FName:= '';
> //получаем имя файла
> for i: = Length(Open1.FileName) downto 1 do
> begin
> if Open1.FileName[i] = '\' then break;
> temp:= temp+ Open1.FileName[i];
> end;
> for i:=length(temp) downto 1 do
> fname:= fname + temp[i];
> ftp.Upload(Open1.FileName, FName); //загружаем файл
> end;
>end;
>procedure TForm1.FormDestroy(Sender: TObject) ;
>begin
> if ftp.Connected then ftp.Disconnect;
>end;
>procedure TForm1.Button5Click(Sender: TObject);
>begin
> ftp.ChangeDir(cd.Text); //изменяем каталог
>end;
>procedure TForm1.Button4Click(Sender : TObject);
>begin
> ftp.Delete(del.text); //удалить файл
>end;
>procedure TForm1.Button6Click(Sender: TObject);
>begin
> ftp.DoCommand(cmd.Text); //выполнение команды
>end;
>procedure TForm1.Button7Click(Sender: TObject);
>begin
> ftp.MakeDirectory(md.Text); //создать каталог
>end;
>procedure TForm1.Button8Click(Sender: TObject);
>begin
> ftp.RemoveDir(rd.Text); //удалить каталог
>end;
>procedure TForm1.Button9Click(Sender: TObject);
>begin
> //открытие диалогового окна сохранения файла
> if Save1.Execute
> then //скачиваем указанный файл
> ftp.Download(download.Text, save1.FileName)
> else ShowMessage('File not saved!'); {если пользователь отказался сохранять файл}
>end;
>end.
⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter_18.
Глава 19
Написание CGI-приложений
Постановка задачи
Разработать CGI-сценарий на Delphi. В качестве примера, при активации через форму сценарий будет выводить определенную фразу.
Разработка проекта
К удивлению некоторых программистов, в Delphi можно разрабатывать CGI-сценарии. Для примера, разработаем сценарий, при обращении к которому будет создаваться HTML-страница с текстом "Это мой первый CGI-сценарий".
Поскольку это будет не обычная выполняемая программа, то стандартный проект, который по умолчанию предлагает нам Delphi, не подходит. Выполните команду меню File→New→Other, в результате чего откроется диалоговое окно New Items (рис. 19.1).
Рис. 19.1. Диалоговое окно New Items
Выберите тип программы Console Application и нажмите кнопку OK. В появившемся окне сотрите весь текст и введите следующий код:
>program cgi_test;//название сценария
>{$APPTYPE CONSOLE}
>{$Е cgi}//расширение приложения будет .cgi
>begin
> //способ отображения – text/html
> WriteLn('Content-Type: text/html');
> WriteLn;
> WriteLn;
> WriteLn(''); //начало страницы
> WriteLn('');
> //заголовок
> WriteLn('
> //кодировка и тип содержимого
> WriteLn('<МЕТА http-equiv="Content-Type" ' +
> 'content="text/html; charset=windows-1251">');
> WriteLn('');
> WriteLn('');
> WriteLn('
> +'Н1>'); //выводим текст большими жирными буквами
> WriteLn('');
> WriteLn('');
>end.
Откомпилируйте приложение и присвойте ему имя cgi_test.cgi. Этот CGI-сценарий при обращении к нему создает страницу с заголовком "Первый cgi-сценарий на Delphi" и большим текстом на странице: "Это мой первый CGI-сценарий".
Теперь необходимо создать Web-страницу, которая будет обращаться к этому сценарию. Создайте файл с расширением .html следующего содержимого:
>
>
><ТIТLE>Первый cgi-сценарий на Delphi
>
>
>
>
>
><р>Также вы можете выполнять сценарии, просто делая на них
>ссылку: ссылка на cgi-сценарийа>
>
>
Это форма с кнопкой, которая активизирует CGI-сценарий (рис. 19.2).
Рис. 19.2. Web-страница для вызова CGI-сценария
Для того чтобы протестировать сценарий, необходимо переписать рассмотренные выше файлы на сервер с поддержкой CGI или установить и настроить собственный Web-сервер (например, Apache). Открыв показанную Web-страницу, следует нажать кнопку Выполнить или щелкнуть мышью на ссылке.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.