delphi之分割字符串

因为喜欢用文本来记录数据,比如帐号密码等等,一个游戏帐户一行

帐号1,密码1,游戏区11

帐号2,密码2,游戏区11

需要用到分割字符串函数。

delphi的Classes有ExtractStrings函数,感觉用起来不好,后来网上找了个,如下

function SplitString(pString:Pchar;psubString:PChar):TStringList;
var
   nSize,SubStringSize:DWord;
   intI,intJ,intK:DWORD;
   ts:TStringList;
   curChar:Char;
   strString:string;
   strsearchSubStr:string;
begin
   nSize:=strLen(pString);
   SubStringSize:=strLen(PSubString);
   ts:=TStringList.Create;
   strstring:='';
   inti:=0;
   while intI<=(nSize-1) do
   begin
      if (nsize-inti)>= substringSize then
      begin
          if ((PString+intI)^=pSubString^) then
          begin
             intk:=inti;
            strSearchSubStr:='';
            curchar:=(pstring+intk)^;
            strsearchSubStr:=strSearchSubStr+Curchar;
            intk:=intk+1;
            for intj:= 1 to SubStringSize-1  do
            begin
               if ((pString+intk)^=(PSubString+intj)^) then
               begin
                  curchar:=(pstring+intk)^;
                  intk:=intk+1;
                  strsearchSubStr:=strSearchSubStr+Curchar;
            end
            else begin
              inti:=intk;
              strString:=strString+strSearchSubStr;
              break; //不匹配 退出FOR
            end;
        end;
         if (intJ=substringSize) or (SubStringSize=1) then
         begin
            inti:=intk;
            ts.add(strstring);
            strstring:='';
         end;
      end
      else begin
         curChar:=(pString+inti)^;
         strstring:=strstring+curchar;
         inti:=inti+1;
      end;
      if inti=nsize then
      begin
         ts.Add(strString);
         strString:='';
       end;
     end
     else begin //将剩下的字符给作为一个字符串复制给字符串集合
        strString:=strstring+string(pString+inti);
        ts.Add(strstring);
        inti:=nsize;
     end;
   end;
   Result:=ts;

end;
用起来比较顺手,就一直用它了,感谢原作者。

转载于:https://www.cnblogs.com/devlyn/archive/2010/08/23/1806685.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值