分享好友 最新动态首页 最新动态分类 切换频道
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)   

最新文章
跳转微信链接转化率高达80%的引流工具
据不完全数据统计,截止近些年,智能手机逐渐走入了千家万户,覆盖了全国超过90%以上的用户,成为绝大多数人士在工作上或者生活中不可或缺的一个部分。随着互联网社交技术的更新换代,微信的平台功能模块日趋健全,服务于更加广阔的商家和
桌面虚拟化 免费云桌面系统 云电脑租用 YL135 禹龙 办公云终端服务器
桌面虚拟化 免费云桌面系统 云电脑租用 云终端解决方案 虚拟化服务商一、云桌面介绍云桌面是完全符合云计算特征的一种云形态,也是云计算最主要的落地方式之一。桌面云的定义是:“可以通过瘦客户端或者其他任何与网络相连的设备(普通PC、
英文网站建设有什么需要注意
随着经济全球化影响范围的扩大和趋势的蔓延,国际间的交流合作加强,制作一个符合国际化标准的英文网站成为国际企业之间交流的主要平台。英文网站建设对企业之间的市场开拓具有重要的意义,那么英文网站建设有什么需要注意的呢?1.网站风格
谷歌关键词规划师使用详细教程
谷歌关键词规划师(Google Keyword Planner)是一个强大的工具,主要用于帮助用户研究和规划他们的广告活动中的关键词。以下是使用谷歌关键词规划师的基本步骤和方法:1. 访问关键词规划师登录谷歌 Ads 帐户:首先,您需要拥有谷歌 Ads 帐
超级菜菜鸟全程架站攻略(Mysql+Apche+PHP+Phpmyadmin+Zend,含本机安装)
——本文是我5月份刚学PW一个来月时写的攻略,因自己对语言一窍不通,只好自己琢磨+摸索,用了1个通宵研究出来的。今日有朋友问我架设方法,才想起俺写过这么个东西,一直没拿出来发表,今日赶紧补上:)不是超级菜鸟的可以不往下看了哈,
香港资料大全正版资料2024年免费,最佳精选解释落实_LE版6.822
  在这个信息爆炸的时代,数据和知识的获取看似随手可得,但实际上并非所有信息都是准确和权威的。“香港资料大全正版资料2024年免费,最佳精选解释落实_LE版6.822”应运而生,旨在为需要深入了解香港且追求高品质的读者提供一个官方、免
用AI绘画生成超逼真美女写真,零基础也能掌握!
DALL-E:这个工具是由OpenAI推出的强大AI图像生成器,可以将文字描述转化为生动的图片。用户只需通过自然语言描述自己想要的美女形象,DALL-E便能生动还原。优点是能生成非常富有创意和细节的图像,缺点则是对于中文的识别和生成效果相对较
跨境电商独立站没有流量?站外快速引流方法全介绍
现在是互联网时代,很多大佬开始做跨境电商的独立站,毕竟独立站赚钱也多一些,利润高一点。但是苦恼的就是跨境电商独立站建设容易,推广难,很久都没见到任何流量,没有流量意味着没有收入,有什么办法可以快速引流呢?其实跨境电商独立站
炼神丹!御神兽!废材大小姐竟是绝世帝女
简介:  【团宠+双强+驭兽+空间+帝女传承】夜染音,21世纪令人闻风丧胆的第一佣兵“夜神”!一朝穿越,成了边境小城被唾弃的废柴!未婚夫家上门退婚?家族把她当弃子?下一瞬,她被迎回帝都,成了国公府唯一的娇小姐!从此,展露逆天天赋
青春之城
1.请问哪里可以免费在线观看《青春之城》这部国产剧电视剧?星辰影院网友:免vip观看地址:https://m.tvfff.com/v/189894.html天堂电影院网友:你还可以通过以下方式搜索并免费观看,a.百度搜索青春之城b.百度视频搜索青春之城2.《青春之城
相关文章
推荐文章
发表评论
0评