Unit1.cpp
资源名称:第6章 多线程编程.rar [点击查看]
上传用户:gyjjlc
上传日期:2013-03-29
资源大小:2124k
文件大小:3k
源码类别:
多显示器编程
开发平台:
C++ Builder
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "Unit1.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "PBFolderDialog"
- #pragma resource "*.dfm"
- TForm1 *Form1;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- RemoveFromFiles=false;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TForm1::FindFile(AnsiString FileName,AnsiString SeekText)
- {
- WIN32_FIND_DATA FindFileData;
- AnsiString str=FileName.SubString(FileName.Length(),1);
- if(str==".")return true;
- if(str!="\")FileName+="\";
- str=FileName+AnsiString("*.*");
- HANDLE hFile=FindFirstFile(str.c_str(),&FindFileData);
- while(hFile)
- {
- str=FileName+FindFileData.cFileName;
- if((FindFileData.dwFileAttributes&0x00ff)==0x20)
- {
- if(LocateFile(str,SeekText))Memo2->Lines->Add(str);
- }
- else if((FindFileData.dwFileAttributes&0x00ff)==0x10)
- {
- FindFile(str,SeekText);
- }
- if(FindNextFile(hFile,&FindFileData)==false)
- {
- break;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TForm1::LocateFile(AnsiString FileName,AnsiString SeekText)
- {
- TFileStream * pFile=new TFileStream(FileName,fmOpenRead);
- char *buffer=new char[pFile->Size];
- pFile->Read(buffer,pFile->Size);
- AnsiString str=AnsiString(buffer,pFile->Size);
- delete buffer;
- int RetCode=str.AnsiPos(SeekText);
- if(RemoveFromFiles)
- {
- while(RetCode>0)
- {
- str.Delete(RetCode,SeekText.Length());
- RetCode=str.AnsiPos(SeekText);
- }
- delete pFile;
- TFileStream * pFile=new TFileStream(FileName,fmCreate);
- pFile->Write(str.c_str(),str.Length());
- delete pFile;
- return true;
- }
- delete pFile;
- if(RetCode>0)
- return true;
- return false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button1Click(TObject *Sender)
- {
- Memo2->Lines->Clear();
- FindFile(Edit1->Text,Memo1->Lines->Text.SubString(1,Memo1->Lines->Text.Length()-2));
- Label4->Caption=Memo2->Lines->Count;
- }
- void __fastcall TForm1::Button2Click(TObject *Sender)
- {
- RemoveFromFiles=true;
- Button1Click(this);
- RemoveFromFiles=false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button3Click(TObject *Sender)
- {
- Close();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button4Click(TObject *Sender)
- {
- // PBFolderDialog1->Folder="C:\Windows\Desktop";
- if(PBFolderDialog1->Execute())
- Edit1->Text=PBFolderDialog1->Folder;
- }
- //---------------------------------------------------------------------------
English
