我定义了一个集合:
type
  Tcharset= set of char;
var
  charset:Tcharset;
  pd:string;
begin
  charset:=['z','y','x'];
end;
然后我从一个string里取出一个字母pd,我判断它是否在这个集合
pchar(pd) in CharSet),系统报错:
Incompatible types: 'PAnsiChar' and 'Char'
请问,问题出在那里?

解决方案 »

  1.   

    你可以这样:for i := 1 to Length(pd) do
       if pd[i] in charset then
       begin
          // 存在这样的字符属于集合中
          Break;
       end;
      

  2.   

    是这样的:
    str,pd:string;
    pd:=copy(str,7,1);
    if (pchar(pd) in CharSet) then   //在这行报类型不匹配
    .....
    应该怎么来判断,请教了!
      

  3.   

    var
      Str,Pd:String;
    begin
      if Str[7] in CharSet then ....
    end;
      

  4.   

    同意FS……
    没有必要COPY呀……
      

  5.   

    可能是我说的不清楚,要求就是取出str的第7个位置上的哪个字母,判断它在不在charset集合中。
    有更好的方法吗?
      

  6.   

    type
      TCharSet=Set of Char;
    ....
    procedure TForm1.Button1Click(Sender: TObject);
    var
      CharSet:TCharSet;
      S:String;
    begin
      CharSet:=['F','S'];
      S:='FSFSFSF';
      if S[7] in CharSet then ShowMessage('Exist');
    end;偶给你的方法不可以吗?