分享好友 最新动态首页 最新动态分类 切换频道
C++ Builder XE10中TStringlist自定义排序customsort,对数字文件名进行排序导入
2024-12-27 01:07

对数字文件名批量导入排序


//----------------------------------------------------------------------------
int __fastcall CrnSortList(TStringList *lst, int Index1, int Index2)
{
    String  sz1=ExtractFileName(lst->Strings[Index1]).SubString(1,ExtractFileName(lst->Strings[Index1]).Length()-4);
    String sz2= ExtractFileName(lst->Strings[Index2]).SubString(1,ExtractFileName(lst->Strings[Index2]).Length()-4);
    if( Form5->isNum(sz1) && Form5->isNum(sz2))  //如果是数字
    {
        if (sz1.ToInt()<sz2.ToInt()) // 楼主要求:张三<李四
        {
            return -1;
        }
        else if (sz1.ToInt() >sz2.ToInt()) // 楼主要求:张三<李四
            return 1;
        else
            return 0;
    }
    else   //如果是字符比对
    {
        if (sz1<sz2) // 楼主要求:张三<李四
        {
            return -1;
        }
        else if (sz1 >sz2) // 楼主要求:张三<李四
            return 1;
        else
            return 0;
    }

}

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

//---------------------------------------------------------------------------
void __fastcall TForm5::BitBtn2Click(TObject *Sender)
{
AnsiString Dir="";

    //++++++++++++++++++++++++++++++++++++++++++++
     //计算时间
     clock_t start,end,dtStart;
     start=clock();
     //
     RzProgressBar1->Percent=0;
     //++++++++++++++++++++++++++++++++++++++++++++
          //Dir里保存着所选的文件夹绝对路径
    //为空退出
    //Dir= RzSelectFolderDialog1->SelectedPathName;
  //判定是否批量处理
// if(!YNpl)
// {
    if(RzSelectFolderDialog1->Execute())
    {
     Dir =RzSelectFolderDialog1->Directory;
     //Form5->RzMaskEdit1->EditText=RightStr(Dir,3);
     //RzMaskEdit1->EditText= RightStr(Dir,3);
    }
//    else
//      return;
//  }
//  else
//     Dir=PLpath;
  //-----------------------
   if (Dir.Length()==0)
      return;
    int i,num,Lnum;
    Lnum=ListView1->Items->Count;

    TListItem *pItem=0;
   TSearchRec   sr;
   //int iAttributes=0x0000003F;
    //识别是否彩果
    if(isNum(System::Strutils::RightStr(Dir,3)))
    {
        //Edit3->Text=System::Strutils::RightStr(Dir,3);
    }
   if   (FindFirst(Dir+"\*.txt",faAnyFile,sr)   ==   0)
      {   ListView1->Items->BeginUpdate();
          TStringList *Flist =new TStringList;
          Flist->Clear();
          do
          {
               Flist->Append(Dir+"\"+sr.Name);
                  //++++++++++++++++++++++++++++++++++++++++++++
                   //if(Lnum<100)
                   //RzProgressBar1->Percent=Lnum;
                   //Application->ProcessMessages();
                  //++++++++++++++++++++++++++++++++++++++++++++
          } while(FindNext(sr) == 0);
          FindClose(sr);
          //
          //Flist->Sorted=true;
          Flist->CustomSort(CrnSortList); // 进行排序

          for(int i=0;i<Flist->Count;i++)
          {
                 pItem=ListView1->Items->Add();
                 pItem->Caption=Lnum+1;
                 pItem->SubItems->Add(ExtractFileName(Flist->Strings[i]));
                 pItem->SubItems->Add("***"); //注数
                 pItem->SubItems->Add(Flist->Strings[i]); //注数
                // pItem->SubItems->Add("*");
                Lnum++;
          }
          ListView1->Items->EndUpdate();
      }
   Lnum=ListView1->Items->Count;
   //PageControl1->ActivePageIndex=0;
     // +++++++++++++++++++++++++++++++++++++++++++++++
     //操作完成计时
     end=clock();
     dtStart=end-start;
     float dSec=float(dtStart)/1000;
     RzStatusPane1->Caption="预导入大底:"+String(Lnum)+" 个";
          ListView1->Columns->Items[0]->Caption="id ["+AnsiString(Lnum)+"]";
     RzStatusPane2->Caption =
        "耗时:"+FloatToStrF(dSec,ffFixed,4,3)+" 秒 ";
     RzProgressBar1->Percent=100;
}

//----------------------------------------------------------------------------
//判断是否为数字
bool  TForm5::isNum(String str)
{
    try{         

        float f;        //StrToInt(str);       

       if(TryStrToFloat(str,f)==true)           

           return true;       

       else           

      return false;   

 }     

catch(Exception &exception)   

最新文章
网站赚钱攻略,介绍网络世界的财富密码
随着互联网的飞速发展,越来越多的人投身于建设,希望通过网站实现财富增值。如何才能在众多网站中脱颖而出,实现盈利呢?本文将为您揭秘网络世界的财富密码,助您轻松赚钱。一、合理布局,提高网站权重1. 关键词研究:我们要明确自己的网
直播APP如何快速吸引用户?推广运营策略揭秘
直播APP如何快速吸引用户,关键在于制定一套有效的推广运营策略。以下是一些关键策略揭秘:一、明确目标受众深入调研:通过市场调研和数据分析,明确目标受众的年龄、性别、兴趣爱好、消费习惯等特征。精准定位:根据目标受众的特点,为直
零基础快速搭建一个图像检索系统
随着计算机视觉领域的发展,图像识别已经被广泛应用在各个领域,比如在疫情期间各个住宅、办公场所出入口位置广泛使用的人脸识别系统等等。那么,如何快速入门图像识别领域,怎么快速搭建一套自己的图像识别引擎呢?lfaidata 提供了一套非
谷歌SEO效果,多久才能显现?
在当今这个信息爆炸的时代,每一个网站都渴望在谷歌搜索引擎中脱颖而出,获得更高的曝光度和流量。作为一名在SEO领域摸爬滚打多年的从业者,我深知谷歌SEO效果显现的时间问题,是众多网站主和SEO优化师们最为关心的话题之一。它关乎策略的
龙岩百度爱采购标题撰写
百度爱采购分为付费会员和免费会员两类,一般来说付费的会员总是可以优先展示,这只是一方面,更重要的还是百度爱采购会从大数据、用户浏览数据、页面信息等方面去判断,把优质的产品排在前面,这就需要我们完善店铺的信息,比如产品的丰富
通关Android Lint
Lint​Android Lint 是Android Studio 在ADT(Android Developer Tools)16提供的代码扫描工具,可以帮助我们发现和更正代码结构质量的问题。系统会报告该工具检测到的每个问题并提供问题的描述消息和严重级别,以便快速确定需要优先进行的修
美发布K-12生成式人工智能成熟度工具
2024年11月21日,美国“学校网络联盟”(缩写为CoSN,美国K-12教育科技领导者专业协会,代表2050余个学区)与美国“大城市学校理事会”(缩写为CGCS,成立于1956年,成员由全美78个最大的城市公立学校系统组成,致力于改善城市儿童的教育)
通达信亦风自动划线主图指标公式
公式源码:通达信公式 亦风自动划线 的源码:F111:=ZIG(3,15);F211:=IF((F111 REF(F111,1)),100,80);昨:REF(C,1),NODRAW,COLORGREEN;上涨家数:=INDEXADV;下跌家数:=INDEXDEC;人气:上涨家数/下跌家数,NODRAW;M5:=MA(C,5),COLORFFFFFF;M10:=M
用AI绘画工具生成超逼真美女写真,轻松变身街拍达人!
在这个数字化时代,创作艺术作品的工具层出不穷。想象一下,你能否在家中轻轻松松地生成一张超逼真的美女写真?那么,答案就是有可能的!随着AI技术的不断发展,越来越多的当红AI绘画工具横空出世,让我们能够以几乎零门槛的方式创造出令人
相关文章
推荐文章
发表评论
0评