从数据库中取出满足条件的记录,然后把值赋给一个二维数组.我的想法是先把值赋给指针变量,再按地址把指针变量所存的值赋给二维数组.代码如下:
var
  house: array of array of string;
  h: ^string;
...... 
h := @house;//我的意思,这句是取数组首地址
for m := 0 to n-1 do       
begin
  houseid := Fields[0].AsString;
  h^ := houseid;
  h := h+1;(这里我想把指针后移,可是有能通过,请指教该怎么做)
  Next;
end;
......
这样最后就可以直接访问house数组的内容了,请高手指点一下,看我的想法对吗?

解决方案 »

  1.   

    怎么没人回答呀.在delphi中取数组的首地址和C中一样吗,如上所说,在C中取数组名就行了,delphi中怎么取呀,我上面的做法对吗?
      

  2.   

    inc(h);但你這樣聲明可能會有問題的!
      house: array of array of string[100];
      

  3.   

    是的,我用inc(h)后,我不能访问数组中的成员,是什么回事呀,能说说吗
      

  4.   

    ……
    Delphi的动态数组和string可以说是一个类~~
    所以你要通过@来取首地址也只是这个类的首地址,而不是数据块的首地址~~
    因为动态数组和string都需要有空间来存储下标信息~~
    另外house也没有分配内存资源~~
    动态二维数组中的元素本来就一个动态一维数组~~
      SetLength(house, 10);
      SetLength(house[0], 11);
      SetLength(house[1], 1);
    长短都可能不一致~~
    你就说你要实现什么功能,让大家想想办法~~
      

  5.   

    我所要实现的是一个现实中的问题,在数据库中存放着住房的信息,我要取出房号,然后生成和楼房对应的一个表格,表格中显示每个房间的房号,这不是一个二维数组吗?把房号显示在对应的表格CELL中
      

  6.   

    若只是為了显示在对应的表格、推薦用TDBGrid控件。
      

  7.   

    string本身就是个复杂的指针
    不要用^string 定义指针
    用pchar
      

  8.   

    不是大家不帮你,是你的问题太模糊,不知道如何下手牙~~“把房号显示在对应的表格CELL中”你所说的表格是啥玩意?~~有什么添加控制Cell的方法和接口?~~
      

  9.   

    就是显示在Grid控件中呀,它的第每一行对应一层楼,这样每一个cell就相当于一个具体的房子.
      

  10.   

    那你直接把数据填到Grid中的cell不就可以了牙~~编这类程序最好用DBGrid+ADOQuery控件,用SQL语句写查询~~