procedure TForm1.Button1Click(Sender: TObject);
var
  a:pchar;
begin
  a:='我是,总';
  a[pos(',',a)]:=',';//前一个‘,’是半角,后一个是全角的!
  label1.Caption:=a;
end;
我想将a字符串中的半角‘,’转换成全角‘,’可是我这样编了后,告诉我:‘incompatible types:'char'and'string'’;
我将a的变量说明改为widestring  string都不行,应该用什么?
急!!!!!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      a:pchar;
      s: string;
      i: integer;
    begin
      a:='我是,总';
      s := a;
      i := pos(',',s);
      if i > 0 then
        s := Copy(s, 1, i - 1) + ',' +
          Copy(s, i + 1, Length(s));  Label1.Caption:=s ;
    end;
      

  2.   

    var
      a:String;
      n:integer;
    begin
      a:='我是,总';
      N:=pos(',',a);//前一个‘,’是半角,后一个是全角的!
      delete(a,n,1);
      insert(',',a,n) ;
      label1.Caption:=a;
    end;
      

  3.   

    var
      a: string;
    begin
      a := '我是,总';
      a:=StringReplace(a,',',',',[rfReplaceAll]);
      showmessage(a);
    end;
      

  4.   

    更简单的:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      a:pchar;
    begin
      a:='我是,总';
      a := PChar(StringReplace(a, ',', ',', [rfReplaceAll]));
      Label1.Caption:=a ;
    end;
      

  5.   

    //No.1 
    Caption := StringReplace('我是,总', ',', ',', [rfReplaceAll]);//No.2
    var
      A: WideString;
      I: Integer;
    begin
      A := '我是,总,';
      I := Pos(',', A);
      while I > 0 do begin
        A[I] := WideString(',')[1];
        I := Pos(',', A);
      end;
      Caption := A;
    end;