Unit1.cpp
上传用户:gyjjlc
上传日期:2013-03-29
资源大小:2124k
文件大小:3k
源码类别:

多显示器编程

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "PBFolderDialog"
  8. #pragma resource "*.dfm"
  9. TForm1 *Form1;
  10. //---------------------------------------------------------------------------
  11. __fastcall TForm1::TForm1(TComponent* Owner)
  12.     : TForm(Owner)
  13. {
  14.     RemoveFromFiles=false;
  15. }
  16. //---------------------------------------------------------------------------
  17. bool __fastcall TForm1::FindFile(AnsiString FileName,AnsiString SeekText)
  18. {
  19.     WIN32_FIND_DATA FindFileData;
  20.     AnsiString str=FileName.SubString(FileName.Length(),1);
  21.     if(str==".")return true;
  22.     if(str!="\")FileName+="\";
  23.     str=FileName+AnsiString("*.*");
  24.     HANDLE hFile=FindFirstFile(str.c_str(),&FindFileData);
  25.     while(hFile)
  26.     {
  27.         str=FileName+FindFileData.cFileName;
  28.         if((FindFileData.dwFileAttributes&0x00ff)==0x20)
  29.         {
  30.             if(LocateFile(str,SeekText))Memo2->Lines->Add(str);
  31.         }
  32.         else if((FindFileData.dwFileAttributes&0x00ff)==0x10)
  33.         {
  34.             FindFile(str,SeekText);
  35.         }
  36.         if(FindNextFile(hFile,&FindFileData)==false)
  37.         {
  38.             break;
  39.         }
  40.     }
  41. return true;
  42. }
  43. //---------------------------------------------------------------------------
  44. bool __fastcall TForm1::LocateFile(AnsiString FileName,AnsiString SeekText)
  45. {
  46.     TFileStream * pFile=new TFileStream(FileName,fmOpenRead);
  47.     char *buffer=new char[pFile->Size];
  48.     pFile->Read(buffer,pFile->Size);
  49.     AnsiString str=AnsiString(buffer,pFile->Size);
  50.     delete buffer;
  51.     int RetCode=str.AnsiPos(SeekText);
  52.     if(RemoveFromFiles)
  53.     {
  54.         while(RetCode>0)
  55.         {
  56.             str.Delete(RetCode,SeekText.Length());
  57.             RetCode=str.AnsiPos(SeekText);
  58.         }
  59.         delete pFile;
  60.         TFileStream * pFile=new TFileStream(FileName,fmCreate);
  61.         pFile->Write(str.c_str(),str.Length());
  62.         delete pFile;
  63.         return true;
  64.     }
  65.     delete pFile;
  66.     if(RetCode>0)
  67.         return true;
  68.     return false;
  69. }
  70. //---------------------------------------------------------------------------
  71. void __fastcall TForm1::Button1Click(TObject *Sender)
  72. {
  73.     Memo2->Lines->Clear();
  74.     FindFile(Edit1->Text,Memo1->Lines->Text.SubString(1,Memo1->Lines->Text.Length()-2));
  75.     Label4->Caption=Memo2->Lines->Count;
  76. }
  77. void __fastcall TForm1::Button2Click(TObject *Sender)
  78. {
  79.     RemoveFromFiles=true;
  80.     Button1Click(this);
  81.     RemoveFromFiles=false;
  82. }
  83. //---------------------------------------------------------------------------
  84. void __fastcall TForm1::Button3Click(TObject *Sender)
  85. {
  86.     Close();    
  87. }
  88. //---------------------------------------------------------------------------
  89. void __fastcall TForm1::Button4Click(TObject *Sender)
  90. {
  91. //    PBFolderDialog1->Folder="C:\Windows\Desktop";
  92.     if(PBFolderDialog1->Execute())
  93.         Edit1->Text=PBFolderDialog1->Folder;
  94. }
  95. //---------------------------------------------------------------------------