如何把字符数组A的内容赋给字符数组B?

解决方案 »

  1.   

    Var
       i:integer;
    for i:=low(A) to high(A) do
    B[i]:=A[i];
    //注:前提条件是B数组的元素个数必须大于等于A数组。
      

  2.   

    Var
       i:integer;
    for i:=low(A) to low(A)+high(b)-low(b) do
      B[low(b)+low(a)-i]:=A[i];
      

  3.   

    var 
    i,m:integer;
    i:=length(b);
    for m:=0 to length(a) do
    b[i+m]:=a[i]
    b[i+length(a)]:=null;
      

  4.   

    以下是链接库中的一个函数
    function ReadData(var Arr:array of string):SmallInt;stdcall;
    var
      DoorNo1:string;
      i:SmallInt;
      Buf1 : Array [0..34] of Char;
      Hp:PChar;
    begin
        Hp:=Buf1;
        st:=rd_asc(0,1,17,Hp);//调用另一个链接库从感应卡里读数据
        DoorNo1:=Hp;//取出来的HP有值:1234
        if DoorNo1<>'' then begin
          Arr[0]:=IntToHex(StrToInt('$'+DoorNo1[1]+DoorNo1[2]) xor 151,0);
        end;
    end;为什么会出现Invalid Pointer Operation的错误。如果把
    Arr[0]:=IntToHex(StrToInt('$'+DoorNo1[1]+DoorNo1[2]) xor 151,0);屏蔽掉,就不会出错了,请问高手这是什么原因。该怎样解决?我在链接库中只使用了一个SysUtils单元
      

  5.   

    要在工程文件的uses部分的第一个引用文件前加上 ShareMem
      

  6.   

    我添加了ShareMem的,仍然没有用呀?
      

  7.   

    dll的部分要加上ShareMem
    调用的工程文件也要加上ShareMem
    一般在dll中出现Invalid Pointer Operation,基本都是这个原因
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      S1, S2: array[0..5] of Char;
    begin
      S1 := 'Hello';
      S2 := S1;
      ShowMessage(S2);
    end;
      

  9.   

    标准pascal语法中同类型的两个数组之间是可以互相整体赋值的