有一字符串
var person={23:["姓名1","性别1","年龄1"],25:["姓名2 ","性别2 ","年龄2"]};如何用Delphi分析出ID为23/25的姓名、性别、年龄。

解决方案 »

  1.   

    不是呀,是用Delphi分析字符串,有什么算法?
      

  2.   

    这个很显然的是一个Json的数据结构,可以去下载一个Json的解析库
    或者用正则表达式咯!
      

  3.   

    function GetMiddleStr(const AStr :string; ALen :Integer):string;//去掉产尾相关标识符,如{123}则去掉{},如"123"则去掉""
    begin
      Result := '';
      if AStr <> '' then
        Result := Copy(AStr, ALen+1, Length(AStr)- ALen *2);
    end;procedure GetStr();
    var
      LIndex :Integer;
      LStr1, LStr2 :string;
      LStrList :TStrings;
    begin
      LStrList := TStringList.Create;
      LStr1:='{23:["张三","男","20"],25:["王春芬","女","25"]}' ;
      LStr1 := GetMiddleStr(LStr1, 1);
      LIndex := Pos(']', LStr1);
      while LIndex > 0 do
      begin
        LStr2 := Copy(LStr1, 1, LIndex);
        LStr1 := Copy(LStr1, LIndex+2, Length(LStr1) - LIndex -1 );
        Form1.Memo1.lines.Add(LStr2);
        Form1.Memo1.lines.Add(LStr1);
        LIndex := Pos(']', LStr1);
      end;
    end;思路先分析串,分解为
    23:["张三","男","20"]
    25:["王春芬","女","25"]接着再分析吧