今天遇到一个问题,请各位帮忙看下问题所在。
var
  url:PChar;
  url1:PChar;
  qqno:string;begin
  qqno:='1234';
  url:=pchar(qqno);
  url1:=pchar('1550983476');  if(url1=url)then
         begin
         showmessage('一样');
         end else
         begin  
          showmessage('不一样');
         end;结果:打印出不一样!!
问题:都是string 为什么这两种转换 会不一样呢 请解惑!

解决方案 »

  1.   

        PChar 就是指向一个以Null 结尾的每个字符为一个字节的字符串的指针。 (可以看成是一个字符串),它是windowsI专用字符。
        String是字符数组,以字符#0结尾;它是Delphi专用字符。
      二者结构不一样。qqno:='1234';
    url:=pchar(qqno);
    url1:=pchar('1550983476');
    url的值是1234,url1的值是1550983476,两者是不一样啊。
      

  2.   

    网址的转码建议用
    uses 
    IdURI;
    ......     Respon:=TidURI.URLDecode(Http.Get(TIdURI.URLEncode(URLStr)));URLEncode编码
    URLDecode解码当然,得先引用
      

  3.   


    对不起  打错了  应该是
    qqno:='1234';
    url:=pchar(qqno);
    url1:=pchar('1234');
      

  4.   

    url和url1你这个比较是指针比较,不是字符串比较。var
      url: PChar;
      url1: PChar;
      qqno: string;begin
      qqno := '1234';
      url := pchar(qqno);
      url1 := pchar('1234');  if lstrcmp(url, url1) = 0 then
      begin
        showmessage('一样');
      end else
      begin
        showmessage('不一样');
      end;
    end;
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      url:PChar;
      url1:PChar;
      qqno:string;
    begin
      qqno:='1234';
      url:=pchar(qqno);
      url1:=pchar('1234');  if strpas(url)=strpas(url1) then
      begin
        showmessage('一样');
      end
      else begin
        showmessage('不一样');
      end;
    end;
     if (url1=url) then 是比较指针地址,应该修改为比较字符串值: if strpas(url)=strpas(url1) then