⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fselectdirectoryfile.cpp

📁 一个非常实用的号码魔方工具
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "FSelectDirectoryFile.h" 
#include <FileCtrl.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmSelectDirectory *frmSelectDirectory;
//---------------------------------------------------------------------------
__fastcall TfrmSelectDirectory::TfrmSelectDirectory(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmSelectDirectory::SpeedButton1Click(TObject *Sender)
{
    TSpeedButton* sbSelect = dynamic_cast<TSpeedButton*>(Sender) ;
    AnsiString Dir = "" ;
    SelectDirectory(Dir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt,1000) ;
    if( sbSelect->Tag == 1 )
        edSourceDirectory->Text = Dir ;
    else
        edAimDirectory->Text = Dir ;	
}
//---------------------------------------------------------------------------

void __fastcall TfrmSelectDirectory::bitOKClick(TObject *Sender)
{                                                  
	Screen->Cursor = crHourGlass ;
	TStringList * sList = new TStringList ;
    FindFile( sList, edSourceDirectory->Text  ) ;
	TStringList * sList1 = new TStringList ;
    TStringList * sList2 = new TStringList ;
    AnsiString sFilePath, sFileName ;
    while( sList->Count > 0 )
    {
        sFilePath = sList->Strings[0] ;
        sList->Delete(0) ;
        if( FileExists( sFilePath ) )
        {
            sList1->LoadFromFile(sFilePath) ;
            sFileName = ExtractFileName( sFilePath ).LowerCase() ;
            for( int i = 0; i < sList->Count; ++i )
            {
                sFilePath = sList->Strings[i] ;
                if( sFileName == ExtractFileName( sFilePath ).LowerCase() )
                {
                    sList->Delete(i) ;
                    --i ;
                    if( FileExists( sFilePath ) )
                    {
                        sList2->LoadFromFile(sFilePath) ;
                        sList1->Add(sList2->Text) ;
                    }
                } // end if
            } // end for
            sList1->SaveToFile( edAimDirectory->Text + "\\" + sFileName ) ;
        }  // end if
    } // end while
    delete sList1 ;
    delete sList2 ;
    delete sList ;           
    Screen->Cursor = crDefault ;
    ShowMessage("处理完成") ;  	
}
//---------------------------------------------------------------------------
void __fastcall TfrmSelectDirectory::FindFile(TStringList* sList, AnsiString sDir)
{
    WIN32_FIND_DATA wfd ;
    HANDLE hFind ;
    AnsiString sFileName = sDir + "\\*.*" ;
    try
    {
        hFind = FindFirstFile( sFileName.c_str(), &wfd ) ;
        if( hFind != INVALID_HANDLE_VALUE  )
        {          
            do
            {
                if( AnsiString(wfd.cFileName) != "." && AnsiString(wfd.cFileName) != ".." )
                {
                    if( wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY ) //目录
                    {
                        FindFile( sList, sDir + "\\" + wfd.cFileName ) ;
                    }else
                    {
                        if( ExtractFileExt( wfd.cFileName ).LowerCase() == ".txt" )
                        {
                            sList->Add(sDir + "\\" + wfd.cFileName) ;
                        }
                    }
                }
            }while ( FindNextFile( hFind, &wfd) ) ;
        }
    }
    __finally
    {
        FindClose( hFind ) ;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -