Суббота, 18.05.2024, 20:52
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Категории раздела
Форма входа
ДРУЗЬЯ САЙТА

Вызвать мастера в Красноярске

8 983 207 5474

8 902 918 9334

8 933 332 3164

---------------------------------

Запчасти бытткхники

  • Велес т.2935600
  • СЦ Близнецов т.2296595
  • Вираж
  • Красраб 110 т.2589503
  • Комплекстур Щорса30 т.2606797
  • Радиодетали

  • Якорный 9 т.2688317
  • Воронова 16 т.2202990
  • Красраб 125а т.2456544
  • Профи т.2702737
  • Дайте две т.+79237713323
  • Электрика

  • Электро +
  • Планета электрика
  • ЗАКЛАДКИ
    Поиск
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Главная » Статьи » C++ Builder » Простые примеры

    C++ BUILDER XE2 INDY 10 IDFTP СОЗДАЁМ КЛИЕНТ
    ====================================

    =========================================
    //---------------------------------------------------------------------------

    #include <vcl.h>
    #pragma hdrstop

    #include "Unit1.h"
    #include <IdAllFTPListParsers.hpp>
    //#include <IdFTPListParseUnix.hpp>
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    potok  = new TMemoryStream;
    fl = false;
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::FormDestroy(TObject *Sender)
    {
    delete potok;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::IdFTP1Work(TObject *ASender, TWorkMode AWorkMode, __int64 AWorkCount)

    {
    if( fl == true ){ ProgressBar1->Position = AWorkCount; }
    }
    //----------Наш метод перезаписывает ListView1-----------------------------------------------------------------

    void __fastcall TForm1::UpdateList(void)
    {
    IdFTP1->List( NULL, "", true );
    ListView1->Items->Clear();
    for( int i = 0; i < IdFTP1->DirectoryListing->Count; ++i ) {
    ListView1->Items->Add();
    ListView1->Items->Item[i]->Caption = IdFTP1->DirectoryListing->Items[i]->FileName;
    ListView1->Items->Item[i]->SubItems->Add(IntToStr(IdFTP1->DirectoryListing->Items[i]->Size) );
    ListView1->Items->Item[i]->SubItems->Add(IdFTP1->DirectoryListing->Items[i]->Data );
    }
    }
    //---------Соединяемся с сервером------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     if( IdFTP1->Connected() ) IdFTP1->Disconnect();
    ListView1->Items->Clear();
    IdFTP1->Host = LabeledEdit1->Text;
    IdFTP1->Port = StrToInt( LabeledEdit2->Text );
    IdFTP1->Password = LabeledEdit3->Text;
    IdFTP1->Username = LabeledEdit4->Text;
    IdFTP1->Passive = true;
    IdFTP1->AutoLogin = true;
    //IdFTP1->TransferType = ftBinary;
    try
    {
    IdFTP1->Connect();
    }
    catch(...)
    {
    //Application->MessageBox( L"Сервер не отвечает",L"Повторите ввод",MB_OK);
    ShowMessage( "Сервер не отвечает" );
    if( IdFTP1->Connected() ) IdFTP1->Disconnect();
    return;
    }
    Panel1->Enabled = true;
    ListView1->Enabled = true;
    UpdateList(); //перезапмсываем ListView1
    }
    //------------Открыть директорию---------------------------------------------------------------
    void __fastcall TForm1::ListView1DblClick(TObject *Sender)
    {
    if( ListView1->Selected != 0 ){
    if( ! ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){
    IdFTP1->ChangeDir(ListView1->Items->Item[ListView1->Selected->Index]->Caption);
    UpdateList(); //перезапмсываем ListView1
    } else  ShowMessage( "Не Директория" );
    }
    }
    //-----------В корень----------------------------------------------------------------

    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    if( IdFTP1->Connected() ) {
    IdFTP1->ChangeDirUp() ;
    UpdateList(); //перезапмсываем ListView1
    }
    }
    //----------Сохранить файл-----------------------------------------------------------------
    void __fastcall TForm1::N1Click(TObject *Sender)
    {
    if( ListView1->Selected != 0 ){
    if( ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){
    SaveDialog1->FileName = ListView1->Items->Item[ListView1->Selected->Index]->Caption;
    if( SaveDialog1->Execute() ) {
    UnicodeString s = SaveDialog1->FileName;
    potok->Clear();
     fl = true;
     ProgressBar1->Position = 0;
     ProgressBar1->Max = StrToInt( ListView1->Items->Item[ListView1->Selected->Index]->SubItems->Strings[0] );
    IdFTP1->Get(ListView1->Items->Item[ListView1->Selected->Index]->Caption, potok, true);
    potok->SaveToFile( s );
    fl = false;
    }
    }else  ShowMessage( "Не Файл" );
    }
    }
    //----------Создать Директорию-----------------------------------------------------------------

    void __fastcall TForm1::N2Click(TObject *Sender)
    {
    if( IdFTP1->Connected() ) {
    UnicodeString name = "pub";
    if( ! InputQuery( "Имя Директории","Только инглиш", name ) ) return;

     else { IdFTP1->MakeDir( name );//создание директории
    UpdateList(); } //перезапмсываем ListView1
    }
    }
    //----------Удалить Директорию-----------------------------------------------------------------

    void __fastcall TForm1::N3Click(TObject *Sender)
    {
    if( IdFTP1->Connected() && ListView1->Selected != 0 ) {
     if( ! ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){
    IdFTP1->RemoveDir(ListView1->Items->Item[ListView1->Selected->Index]->Caption );
    UpdateList(); //перезапмсываем ListView1
     } else  ShowMessage( "Не Директория" );
    }
    }
    //----------Удалить Файл-----------------------------------------------------------------

    void __fastcall TForm1::N4Click(TObject *Sender)
    {
    if( IdFTP1->Connected() && ListView1->Selected != 0 ) {
    if( ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){
    IdFTP1->Delete( ListView1->Items->Item[ListView1->Selected->Index]->Caption );
    UpdateList(); //перезапмсываем ListView1
    }  else  ShowMessage( "Не Файл" );
    }
    }
    //------------Переименовать Файл---------------------------------------------------------------

    void __fastcall TForm1::N5Click(TObject *Sender)
    {
    if( IdFTP1->Connected() && ListView1->Selected != 0 ) {
    if( ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){
    UnicodeString name = ListView1->Items->Item[ListView1->Selected->Index]->Caption ;
    if( ! InputQuery( "Имя Файла","Только инглиш", name ) ) return;

     else { IdFTP1->Rename( ListView1->Items->Item[ListView1->Selected->Index]->Caption, name );
     UpdateList(); } //перезапмсываем ListView1
    }   else  ShowMessage( "Не Файл" );
    }
    }
    //-----------Загрузить Файл на сервер----------------------------------------------------------------

    void __fastcall TForm1::N6Click(TObject *Sender)
    {
    if( IdFTP1->Connected() ) {
    if( OpenDialog1->Execute() ){
    UnicodeString name = OpenDialog1->FileName;
    ////////////////////////////////////////////////////////////////
    //////Блок вычисляет разиер файла  API функции             /////
    ////////////////////////////////////////////////////////////////
     HANDLE hFile;
    hFile = CreateFile( name.w_str() ,
    GENERIC_READ, FILE_SHARE_READ,
                 NULL, OPEN_EXISTING,
                 FILE_ATTRIBUTE_NORMAL, NULL);

    LONGLONG nFileLen = 0;
    if (hFile != INVALID_HANDLE_VALUE)
    {
       DWORD dwSizeHigh = 0, dwSizeLow = 0;
       dwSizeLow = GetFileSize(hFile, &dwSizeHigh);
       nFileLen = (dwSizeHigh * (MAXDWORD+1)) + dwSizeLow;
       CloseHandle( hFile );
    }
    ////////////////////////////////////////////////////////////////////
    ///                                                          ///////
    ////////////////////////////////////////////////////////////////////
     ProgressBar1->Position = 0;
     ProgressBar1->Max = nFileLen ; //Размер файла
     fl = true;
    IdFTP1->Put( name, ExtractFileName( name ) , false, 0 );   fl = false;
    UpdateList(); //перезапмсываем ListView1
    }
    }
    }
    //-----------Отключится от сервера----------------------------------------------------------------
    void __fastcall TForm1::SpeedButton9Click(TObject *Sender)
    {
    if( IdFTP1->Connected() ) IdFTP1->Disconnect();
    ListView1->Items->Clear();
    Panel1->Enabled = false;
    ListView1->Enabled = false;
    ProgressBar1->Position = 0;
    }
    //---------------------------------------------------------------------------

    ////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////

    //---------------------------------------------------------------------------

    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <System.Classes.hpp>
    #include <Vcl.Controls.hpp>
    #include <Vcl.StdCtrls.hpp>
    #include <Vcl.Forms.hpp>
    #include <IdBaseComponent.hpp>
    #include <IdComponent.hpp>
    #include <IdExplicitTLSClientServerBase.hpp>
    #include <IdFTP.hpp>
    #include <IdTCPClient.hpp>
    #include <IdTCPConnection.hpp>
    #include <Vcl.ExtCtrls.hpp>
    #include <Vcl.Menus.hpp>
    #include <Vcl.Dialogs.hpp>
    #include <Vcl.ComCtrls.hpp>
    #include <IdAntiFreezeBase.hpp>
    #include <Vcl.IdAntiFreeze.hpp>
    #include <Vcl.Buttons.hpp>
    #include <memory>
    //#include <IdFTPListParseBase.hpp>
    //#include <IdFTPListParseUnix.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
    TIdFTP *IdFTP1;
    TLabeledEdit *LabeledEdit1;
    TLabeledEdit *LabeledEdit2;
    TLabeledEdit *LabeledEdit3;
    TLabeledEdit *LabeledEdit4;
    TPopupMenu *PopupMenu1;
    TMenuItem *N1;
    TSaveDialog *SaveDialog1;
    TProgressBar *ProgressBar1;
    TIdAntiFreeze *IdAntiFreeze1;
    TListView *ListView1;
    TMenuItem *N2;
    TMenuItem *N3;
    TMenuItem *N4;
    TMenuItem *N5;
    TMenuItem *N6;
    TOpenDialog *OpenDialog1;
    TSpeedButton *SpeedButton1;
    TPanel *Panel1;
    TPanel *Panel2;
    TPanel *Panel3;
    TSpeedButton *SpeedButton2;
    TSpeedButton *SpeedButton3;
    TSpeedButton *SpeedButton4;
    TSpeedButton *SpeedButton5;
    TSpeedButton *SpeedButton6;
    TSpeedButton *SpeedButton7;
    TSpeedButton *SpeedButton8;
    TSpeedButton *SpeedButton9;
    TSpeedButton *SpeedButton10;
    TLabel *Label1;
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall Button4Click(TObject *Sender);
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall N1Click(TObject *Sender);
    void __fastcall IdFTP1Work(TObject *ASender, TWorkMode AWorkMode, __int64 AWorkCount);
    void __fastcall ListView1DblClick(TObject *Sender);
    void __fastcall N2Click(TObject *Sender);
    void __fastcall N3Click(TObject *Sender);
    void __fastcall N4Click(TObject *Sender);
    void __fastcall N5Click(TObject *Sender);
    void __fastcall N6Click(TObject *Sender);
    void __fastcall SpeedButton9Click(TObject *Sender);



    private: // User declarations
    public: // User declarations
      TMemoryStream *potok ;
      bool fl;
      void __fastcall UpdateList(void);
    __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif

    //////////////////////////////////////////////////////////////////////////////////////////////////








    Категория: Простые примеры | Добавил: doka (20.07.2013)
    Просмотров: 3952 | Комментарии: 1 | Рейтинг: 0.0/0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]