zoukankan      html  css  js  c++  java
  • bcb Split涵数

    // 拆分字符
    TStringList *Split(WideString Spliter, WideString String, int SplitNumber = 0)
    {
        int const MaxPos = 0x7fffffff, StartPos = 1;
        int FindPos, CharLen, Length, MySplitNumber=0;
        TStringList *Strs = new TStringList;
        BOOL LostTail;

        //if (SplitNumber == 0) LostTail = TRUE; 不严格,LostTail 在
        // SplitNumber != 0 时可能是任何值。故修改如下:
        LostTail = (SplitNumber == 0);
        //^^^^^^^^^^^^^^^^^^^^^^^^^^\\
        if (SplitNumber <= 0) SplitNumber = MaxPos;
            else MySplitNumber = SplitNumber;
        CharLen = Spliter.Length(); Length = String.Length();

        while(1)
        {
            FindPos = String.Pos(Spliter);
            if (CharLen <= 0){
                if (FindPos > Length) break;
                    else FindPos++;
            }
            if ((FindPos == 0) || (SplitNumber <= 1)){
                Strs->Add(String.SubString(StartPos,MaxPos));
                break;
            }
            --SplitNumber;
            Strs->Add(String.SubString(StartPos,FindPos - StartPos));
            String = String.SubString(FindPos+CharLen,MaxPos);
        }
        int i;
        for (i=Strs->Count; i<MySplitNumber; i++){
            Strs->Add("");
        }
        if (LostTail){
            for (i = Strs->Count - 1; i>=0; i--)
                if (Strs->Strings[i] == "") Strs->Delete(i);
                    else break;
        }

        return Strs;
    }

  • 相关阅读:
    C# .NET5.0 平台介绍、演变
    ORA01034/ORA27101解决
    navicat无法连接虚拟机MySQL
    [原创]Windows下Google V8 javascript引擎编译
    CentOS 6.9安装MySQL5.5
    国内yum源
    【转】关于C++程序的编码问题
    VS C4819 编译错误解决方法
    Windows下Vundle安装
    vmware NAT 静态ip配置
  • 原文地址:https://www.cnblogs.com/xsmhero/p/1557120.html
Copyright © 2011-2022 走看看