ЖУРНАЛ ХАКЕР

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

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


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

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

begin

Delete( addr , 1 , 6 ) ; // удаляем первые 6 символов из

//адреса

host := Copy ( addr , 1 , ( Pos( '/' , addr ) - 1 ) ) ;

// находим хост

Delete( addr , 1 , ( Pos( '/' , addr ) - 1 ) ) ;

dir := addr ;

// находим путь к файлу

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

end

else

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

begin

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

end

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

end

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

end ;

Итак, сначала функцией Delete стираем первые 6 символов из адреса. Функция берет строку, из которой стирать, символ, с которого начинать стирать, количество стираемых символов - все очень похоже на Copy. Затем в переменную host копируем адрес сервака, но вместо количества символов там стоит конструкция типа

(Pos( '/' , addr ) -1). Все путем! Функция Pos находит положение символа / в строке addr и выдает число, которое показывает, какой этот символ по счету. Но нам его копировать не надо, поэтому и отнимаем единицу. Теперь, если адрес файла ftp://my.host.com/file.exe, то адрес сервера будет my.host.com. Дальше стираем из адреса хост, и остается адрес файла - его и присваиваем переменной dir. Все, подготовка закончена, все данные обработаны, сохраняйся.

Кодим скачку по фтп

Обработаем теперь докачку по фтп. Ниже идущий код пиши там, где надпись:

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

Сначала поработаем с кнопками, дописывай код:

Edit1.Enabled := false ;

Edit2.Enabled := false ; // вырубаем эдиты

Button1.Enabled := false ; // выключаем кнопку "Закачать"

Тут, я думаю, все понятно, прописываем закачку:

NMFTP1.Host := host ;

NMFTP1.UserID := 'anonymous' ;

NMFTP1.Password := '' ;

Label3.Caption := 'Подключаемся ... ' ;

NMFTP1.Connect ;

NMFTP1.Mode( MODE_IMAGE ) ;

Label3.Caption := 'Начинаем качать ...' ;

NMFTP1.Download( dir , Edit2.Text ) ;

Label3.Caption := 'Ура !!!' ;

Label3.Caption := 'Отключаемся ...' ;

NMFTP1.Disconnect ;

Тут тоже все понятно - соединяемся, скачиваем, отсоединяемся. Download берет себе сначала адрес файла в Инете, а потом адрес, куда его сохранить на диске. Вот и все. Обрабатываем кнопки:

Button1.Enabled := true ; // включаем кнопку "Закачать"

Edit1.Enabled := true ;

Edit2.Enabled := true ; // врубаем эдиты

Edit1.Clear ;

Edit2.Clear ; // очищаем эдиты

Поработай немного мышом - добавим несколько комментариев. Выдели компонент NMFTF1 у себя на форме, затем кликни в Object Inspector'е на вкладку Events (кликай на OnConnect, затем на белое место справа - два раза).

Пиши:

procedure TForm1.NMFTP1Connect(Sender: TObject);

begin

Label3.Caption := 'Подключено успешно!!!' ;

end;

Теперь, когда соединение установлено, прога выдаст в метку сообщение. Кликай по OnConnectionFailed. Пиши:

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