Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141958
  • 博文数量: 27
  • 博客积分: 2613
  • 博客等级: 少校
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-17 13:12
个人简介

No pain, no gain.

文章分类

全部博文(27)

文章存档

2011年(4)

2010年(2)

2009年(2)

2008年(3)

2007年(2)

2006年(4)

2005年(4)

2004年(6)

我的朋友

分类: WINDOWS

2007-12-30 12:08:27

 
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
   if(Trim(Form1->Edit1->Text)=="")
      {ShowMessage("请输入查询内容!");
       Abort();
      }
   bool upca;
   if(Form1->CheckBox1->Checked) upca=0; else upca=1; /*是否区分大小写*/
   int iFileHandle;
   int iFileLength;
   int iBytesRead;
   char *pszBuffer;
   AnsiString FindTxt=Form1->Edit1->Text;
   short FindLength=FindTxt.Length();
   char *FindChar=FindTxt.c_str();
   unsigned short file_c;
   file_c=Form1->FileListBox1->Items->Count;
   Form1->RichEdit1->Lines->Clear();
   for(unsigned short i=0;i      {Form1->FileListBox1->ItemIndex=i;
       iFileHandle = FileOpen(Form1->FileListBox1->FileName, fmOpenRead);
       iFileLength = FileSeek(iFileHandle,0,2);
       FileSeek(iFileHandle,0,0);
       pszBuffer = new char[iFileLength+1];
       iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
       FileClose(iFileHandle);
       Form1->RichEdit1->Lines->Append("*********正在查找:"+Form1->FileListBox1->FileName+"   共:"+IntToStr(iBytesRead)+"字节*********");
       for(int cur=0;cur          {if((!upca && pszBuffer[cur]==FindChar[0]) || (upca && UpCase(pszBuffer[cur])==UpCase(FindChar[0])))
              {char rec='T';
               for(int ft=1;ft                 {if((!upca && pszBuffer[cur+ft]!=FindChar[ft]) || (upca && UpCase(pszBuffer[cur+ft])!=UpCase(FindChar[ft])))
                     {rec='F';
                      break;
                     }
                 }
               if(rec=='T')
                     {for(int TBegin=0;TBeginCSpinEdit2->Value*2 && cur>0;cur--)
                            {if(pszBuffer[cur]=='\n' || pszBuffer[cur]=='\r')
                             TBegin++;
                            }
                      if(cur>0 && cur
                      AnsiString OutTxt="";
                      for(int tout=0;tout< (Form1->CSpinEdit1->Value+Form1->CSpinEdit2->Value)*2 && cur                         {OutTxt=OutTxt+pszBuffer[cur];
                          if(pszBuffer[cur]=='\n' || pszBuffer[cur]=='\r')
                             tout++;
                         }
                      Form1->RichEdit1->Lines->Append(OutTxt);
                      Form1->RichEdit1->Lines->Append("*-*-*-*-*-*-*"+Form1->FileListBox1->FileName+"*-*-*-*-*-*-*-*");
                     }
              }

          }
       delete [] pszBuffer;
      }
   Form1->RichEdit1->Lines->Append("****查找结束****");
   /*delete [] FindChar;*/
阅读(990) | 评论(0) | 转发(0) |
0

上一篇:Excel文件读写类

下一篇:Sybase openserver setup

给主人留下些什么吧!~~