Example #1
0
        public GStringList  Split(GString f, SplitOption splitop, CaseOption caseop)
        {
            GStringList vect = new GStringList();

            if (this.Find(f, caseop) == -1)
            {
                vect.PushBack(this);
                return(vect);
            }
            int pos = 0, pos1 = 0, pos2 = 0;

            while (true)
            {
                pos1 = pos;
                pos  = this.Find(f, pos, caseop);
                if (pos == -1)
                {
                    break;
                }
                pos2 = pos;
                GString ne = this.Substr(pos1, pos2);
                if ((splitop == GString.SplitOption.SKIP_EMPTY_PARTS && ne.Size != 0) || splitop == G.GString.SplitOption.KEEP_EMPTY_PARTS)
                {
                    vect.PushBack(ne);
                }
                pos += f.Size;
            }
            if (pos1 != 0)
            {
                GString ne = new GString(this.Substr(pos1, this.Size));
                if ((splitop == G.GString.SplitOption.SKIP_EMPTY_PARTS && ne.Size != 0) || splitop == G.GString.SplitOption.KEEP_EMPTY_PARTS)
                {
                    vect.PushBack(ne);
                }
            }
            return(vect);
        }
Example #2
0
 public GStringList Split(GString f, SplitOption splitop , CaseOption caseop)
 {
     GStringList	vect = new GStringList();
     if (this.Find(f, caseop) == -1)
     {
         vect.PushBack(this);
         return (vect);
     }
     int pos = 0, pos1 = 0, pos2 = 0;
     while (true)
     {
         pos1 = pos;
         pos = this.Find(f, pos, caseop);
         if (pos == -1)
             break;
         pos2 = pos;
         GString ne = this.Substr(pos1, pos2);
         if ((splitop == GString.SplitOption.SKIP_EMPTY_PARTS && ne.Size != 0) || splitop == G.GString.SplitOption.KEEP_EMPTY_PARTS)
             vect.PushBack(ne);
         pos += f.Size;
     }
     if (pos1 != 0)
     {
         GString ne = new GString (this.Substr(pos1, this.Size));
         if ((splitop == G.GString.SplitOption.SKIP_EMPTY_PARTS && ne.Size != 0) || splitop == G.GString.SplitOption.KEEP_EMPTY_PARTS)
                 vect.PushBack(ne);
     }
     return (vect);
 }