[原创]分割字符串的函数

程序代码 程序代码

(个人原创,转载请说明出处,zhouye,www.zyea.com,2006-4-06)
例如12,14,25,4是用,号分割的,要取出分割的字符串,分配到一个动态数组中,主要函数如下:
//用动态数组分割字符串,需要在uses中加入StrUtils,因为用到了rightstr函数。
{参数:
Str_flag: String; //分割字符串的标志,比如';'
Str: String; //待分割的字符串}
//得到字符串中分隔符的个数n,这样分割完的字符串有n+1个
function GetStrFlagCount(Str_flag, Str: string): Integer;
var
  i, j: Integer;
begin
  Result := 0;
  for i := 0 to Length(Str) - 1 do
  begin
    j := Pos(Str_flag, Str);
    if j > 0 then
    begin
      Str := rightstr(Str, j);
      Inc(Result);
    end
    else Break;
  end;
end;
//flagCount即为分隔符的个数
//var arr: array of String //放置分割结果
procedure SplitS(Str_flag, Str: string; flagCount: integer; var arr: array of string);
var
  i, l, p: Integer;
  tmp_Str: string;
begin
  for i := 0 to flagCount do
  begin
    p := pos(Str_flag, Str);
    if p > 0 then
    begin
      l := Length(Str);
      arr[i] := copy(Str, 1, p - 1);
      Str := copy(Str, p + 1, l);
    end
    else
      arr[i] := Str;
  end;
end;





[本日志由 candylight 于 2007-09-29 11:49 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
评论: 0 | 引用: 49 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.