GetRight своими руками

Спецвыпуск Хакер, номер #004, стр. 004-080-3

Продолжаем разговор. Нам нужно узнать, по фтп загружать или по хттп. Для этого нужно знать, что впереди: http://. Чтобы вытянуть это из оригинального адреса, проведем ряд извращений со строками. Дописывай код:

procedure TForm1.Button1Click(Sender: TObject) ;

begin

Label3.Caption := '' ; // очищаем метку для сообщений

if ( Edit1.Tag = 1 ) and ( Edit2.Tag = 1 ) and ( Edit1.Text <> '' )

and ( Edit2.Text <> '' ) then // проверка данных

begin // данные введены, выполнять действия

addr := Edit1.Text ; // сохраняем адрес в переменную

serv := Copy( addr , 1 , 6 ) ; // копируем 6 символов из адреса в

// переменную serv

if serv = 'ftp://

begin

// качаем по фтп

end

else

if serv = 'http:/' then // впереди http:/

begin

// качаем по хттп

end

else Label3.Caption := 'Что за корявый адрес?' ;

end

else Label3.Caption := 'Введи все данные, чувак!' // не все данные

end ;

Сначала мы сохранили адрес из первого эдита в переменную addr, затем в переменную serv мы из переменной addr копируем 6 символов. Используем функцию Copy. В скобках идут параметры - сначала пишем переменную, из которой копировать, потом номер символа, с которого начинать, ну и потом сколько символов копировать. Всю скопированную бурду сохраняем в переменной serv, теперь проверяем: если серв равен ftp://, то качать будем по фтп, а если http:/ - по хттп. Ну а если серв другой, то адрес корявый - это и напишем в метке. Кстати, переменные serv и addr еще не определены, и программа будет ругаться (а работать не будет). Надо их определить, иди в самый верх кода и там ищи слово var. Вот после этого слова и допиши переменные, заодно добавь еще несколько - они нам потом пригодятся. Вот так:

var

serv , addr , host , dir : String ;

String - это строка, соответственно, все эти переменные - строки. Уфф! Теперь последние штрихи на этой стадии - для скачки по фтп нужно сначала соединиться с хостом (сервером), а потом уже скачивать файло. Нужно разбить адрес на хост и собственно адрес файла, а это опять извращения со строками. Дописывай:

procedure TForm1.Button1Click(Sender: TObject) ;

begin

Label3.Caption := '' ; // очищаем метку для сообщений

if ( Edit1.Tag = 1 ) and ( Edit2.Tag = 1 ) and ( Edit1.Text <> '' )

and ( Edit2.Text <> '' ) then // проверка данных

begin // данные введены, выполнять действия

addr := Edit1.Text ; // сохраняем адрес в переменную

serv := Copy( addr , 1 , 6 ) ; // копируем 6 символов из адреса в

Назад на стр. 004-080-2  Содержание  Вперед на стр. 004-080-4

ttfb: 3.8731098175049 ms