tstringlist使用有关问题(非常奇怪的现象)

tstringlist使用问题(非常奇怪的现象)
procedure TForm1.btn2Click(Sender: TObject);
var
  vlist:TStringList;
  i:Integer;
  a,b,c:string;
  p,j:integer;
  const
    s ='a(bc),def(ghk)';  //括号和逗号都是中文输入法输入的。
begin
  vlist:= TStringList.Create;
      c:= ',';// 逗号是中文输入法输入的。
      vlist.Delimiter:= c[1];
      vlist.DelimitedText:= s;
      ShowMessage(vlist.DelimitedText);
      ShowMessage(IntToStr(vlist.Count));
      for i:= 0 to vlist.Count - 1 do
      begin
        a:= vlist.Strings[i];
        ShowMessage(a);
      end;
end;
现在想把s分成'abc','defghk'.但这个结果是'a','bc','','def','ghk','',非常奇怪,请高手来看看。
------解决方案--------------------
 ',';//汉字占两个字节,
c[1];//你只取了其中一个字节进行拆分。
------解决方案--------------------
中文的符号是占2Byte,语句:vlist.Delimiter:= c[1];
只是将中文逗号的低位作为了分隔符,而不是中文“,”,所以出现这种上述情况。
TStringList不支持中文的Delimiter,自己写个解析函数吧。
------解决方案--------------------
中文的符号是占2Byte,语句:vlist.Delimiter:= c[1];
只是将中文逗号的低位作为了分隔符,而不是中文“,”,所以出现这种上述情况。
TStringList不支持中文的Delimiter,自己写个解析函数吧。 
------解决方案--------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  vlist:TStringList;
  i:Integer;
  a,b,c:string;
  p,j:integer;
  s1: string;
const
  s ='a(bc),def(ghk)';  //括?和逗?都是中文?入法?入的。
begin
  vlist:= TStringList.Create;
  s1 := '';
  i := 1;
  while i <= Length(s) do
    if (Copy(s, i, 2) = '(') or (Copy(s, i, 2) = ')') then
      Inc(i, 2)
    else if (Copy(s, i, 2) = ',') then
    begin
      vlist.Add(s1);
      s1 := '';
      Inc(i, 2);
    end
    else
    begin
      s1 := s1 + s[i];
      Inc(i);
    end;
  vlist.Add(s1);

  Memo1.Lines.Add(vlist.DelimitedText);
  Memo1.Lines.Add(IntToStr(vlist.Count));
  for i:= 0 to vlist.Count - 1 do
  begin
    a:= vlist.Strings[i];
    Memo1.Lines.Add(a);
  end;
end;
------解决方案--------------------
引用:
如果s里面的字符串不确定个数和长度呢,怎么都根据','都给它们分离出来,哪位高手能指点指点写这个解析函数的思路。


晕,我给的函数就可以啊。
------解决方案--------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  vlist:TStringList;