例如:
我要提取下列字符串的信息:
select * from man_baseinfo where 现在国别='中国' and 现在省市=‘杭州’or
性别='男'
我要逐个提取:现在国别,=,中国,现在省市,=,杭州,or,性别,=,男
这些信息,
请问有何函数可以做到这一点;谢谢大家!

解决方案 »

  1.   

    是这样的,
    已知:select * from man_baseinfo where 现在国别='中国' and 现在省市=‘杭州’or 性别='男'
    这样的字符串,我想提取查询的信息字段:现在国别,现在省市;
    也就是我想从这个字符串中提取'现在国别‘这四个字的字符串;
      

  2.   

    这样的意思吧?
    StrTemp ;= MidStr('select ....',34,8);
    如果地动态的就不太好办了。
      

  3.   

    var strstring:string;
            tmpPos:integer;begin
    strString:='select * from man_baseinfo where 现在国别="中国" and 现在省市="杭州"or 性别="男"';
    tmpPos:=Pos('现在国别',Strstring);
    strstring:=MidStr(strString,tmpPos,8);
    showmessage(strstring);
    end;
      

  4.   

    function Pos(Substr: string; S: string): Integer;DescriptionPos searches for a substring, Substr, in a string, S. Substr and S are string-type expressions.Pos searches for Substr within S and returns an integer value that is the index of the first character of Substr within S. Pos is case-sensitive. If Substr is not found, Pos returns zero.
      

  5.   

    我要的是动态的提取其中的信息:现在国别只不过是其中的一个例子而已。
    所以用pos好像不行。谢谢大家,还有没有更好一点点的方法。
      

  6.   

    自己写个函数来实现.
    如:
    var
    text:array[1..4]of string
    ss:string;
    i,j:integer;
    begin
    j:=1;
    ss:='现在国别='中国' and 现在省市=‘杭州’or 性别='男''for i:=1 to length(ss) do
               begin
                 if ss[i]<>'=' then
                  text[j]:=text[j]+ss[i]
                  else
                   j:=j+1;以上的代码并不完善,你根据你的字符串特征,再改进.