Delphi中的一些字符串分割的函数收集

找了几个,不过我刚才只使用了第一个,另外有些不小心关掉了,因此其实只有两个,以后可能的话再收集起来。

1、使用起来代码最短的。

http://beta.xmu.cn/modules.php?op=modload&name=News&file=article&sid=3&mode=thread&order=0&thold=0

dephi中没有象VB中的split函数,但是使用TStringList类的 Delimter 和 DelimtedText 两个属性可以很容易的把字符串分割,然后放入 TStrings里面.

例:
s:='aa,bb,cc,dd'
ts := TStringList.Create
ts.Delimter := ','
ts.DelimtedText := s
//这时 ts里面就存放了 aa bb cc dd 这四个strings了. 你只要通过 ts[0]就可以取第一个数据
2、自定义函数,分割后其实还是保存在TStringList中

http://www.pconline.com.cn/pcedu/empolder/gj/delphi/0409/453639.html 

  function SplitEx(const Str {需要拆分的文章}, Delimiters {拆分关键字,回车.?!等}: string): TStringList;
  var
  ss: WideString;
  i, St: integer;
  function IsDelimiter(const Delimiters, c: string): Boolean;
  begin //判断是否为拆分关键字
  result := StrScan(PChar(Delimiters), c[1]) <> nil;
  end;
  begin
  Result := TStringList.Create;
  with Result do
  begin
  Clear; Sorted := True; Duplicates := dupIgnore;
  end;
  if Length(Str) < 1 then exit;
  ss := Str; //双字符支持,纯英文可以去掉
  St := -1;
  for i := 1 to Length(ss) do
  if IsDelimiter(Delimiters, ss[i]) then
  if St <> -1 then
  begin
  Result.Add(Trim(Copy(ss, St, i - St)));
  St := -1;
  end
  else
  if St = -1 then St := i;
  if St <> -1 then Result.Add(Copy(ss, St, Length(Str)));
  end;

  //操作演示
  with SplitEx(Memo1.Text, ',,. ?! ' + #13#10) do
  try
  SaveToFile('c:/temp_demo.txt');
  finally
  Free;
  end;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值