Delphi分割字符串的函数--ExtractStrings

     Delphi中-ExtractStrings,分割的同时还可以去空字符串和去空白(可以自定义)。

Unit
Classes

Syntax

ExtractStrings(Separators: TSysCharSet; WhiteSpace: TSysCharSet; Content: PAnsiChar; Strings: TStrings): Integer;  

Description < by specified null-terminated the of fill to ExtractStrings>
< is character quote if quoted in appear can characters that (Note quote. end final until inside when ignored are Separators separators. as treated always double) or (single and characters, newline returns, Carriage substrings. separating delimiters, used set> < beginning at occur they Content parsing be> < into parse> < already strings any so ExtractStrings, cleared not The added. all which>< Strings added number returns>

 

ExtractStrings does not add empty strings to the list

[英文看着比较累,还是中文一下吧]:  WhiteSpace 参数指定每个子串开头被忽略的字符s。
    Content 参数就是被分割的“源”串了。
    Strings 参数用于接收分割后的各个子串。它的原有内容不会被清空。别忘了对Strings进行Create哦。
    另外,EctractStrings不会把空串放入Strings中去。

举个例子吧:

如果我想分割以下字符串: ABC|DEF|GHI

希望得到下面四个字符串:
    1、ABC
    2、DEF
    3、GHI
那么可以用下面的代码:

 

一:直接使用 ExtractStrings函数

  1. uses  Classes;  
  2. var  
  3.   ASource: PChar;  
  4.   AStr: String;  
  5.   ACount,i: Integer;  
  6.   AStrings: TStringList;  
  7. begin  
  8.   ASource := 'ABC|DEF|GHI';  
  9.   AStrings := TStringList.Create;  
  10.   try  
  11.     ACount := ExtractStrings(['|'], [' ','#','.'], ASource, AStrings);
  12.     For i to ACount-1 do
  13.     begin
  14.     ShowMessage(AStrings[i]);     //i=0:ABC;i=1:DEF;i=2:GHI
  15.     end;
  16.     //........................  
  17.   finally  
  18.     AStrings.Free;  
  19.   end;  
  20. end

二:动态赋值分隔符方法

var
  ASource: string;
  i: Integer;
  AStrings: TStringList;
  Delimiter: Char; // 分隔符
begin
  try
    ASource := 'ABC|DEF|GHI';
    Delimiter := '|';
    AStrings := TStringList.Create;
    AStrings.Delimiter := Delimiter;
    AStrings.DelimitedText := PChar(ASource);
    for i := 0 to AStrings.Count - 1 do
      ShowMessage(AStrings.Strings[i]);
  finally
    AStrings.Free;
  end;
end;

转载于:https://www.cnblogs.com/JackSun/archive/2010/10/21/1857278.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值