我定义了一个char行变量,和一个string型变量。
我要将string型变量赋值给char。我用的是
a:char;
b: string;a:=b[1];现在的问题是,当b:=''时,赋值给a时,会出错,如何解决?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      A : AnsiChar;
      B : AnSiString;
    begin
      B := '';
      A := b[1];
    end;
    這樣 ???
      

  2.   

    if B = '' then
      A := #0;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      A : Char;
      B : String;
    begin
      B := '';
      if length(B) =0 then
        A := #0
     else
      A := b[1];
      Showmessage(A);
    end;
      

  4.   

    string char =new char 
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      A : AnsiChar;
      B : AnSiString;
    begin
      B := '';
      A := b[1];
    end;
      

  6.   

    当b:=''时, Integer(b) = 0, b[1]取零地址的值,出现非法访问错误解决办法:
      

  7.   

    使用判断语句if 判断b的长度,小于2,则a:='' 否则a:=b[1]
      

  8.   

    其实是类型的转换,a:char是一个字符,而b:string为字符串类型,将b数组的值赋给a,是要将b字符串类型转换成字符类型,那么只要将a定义成一个数组就行:
    var
      A : array[0..10] of Char;
      B : String;begin
        B := '';
        StrPCopy(A,B);
        showmessage(A);
    end;
      

  9.   

    关键是如果 b 为空时, 你想怎么办?1 a = #0
    2 提示错误
    3 ......if b='' then
    begin
      // do anything you want here
    end;
      

  10.   

    delphi 不熟的人飘过
    java或C里有 双面运算符  ? :
    也就是判断后再取值
    都已经null了你怎么取到第一位字符呢?非法的