比如我现在有一系列数据,是Dword类型的,有若干个,反正比较多
我想通过数组把这些数据录入,且是在函数内部
但是我发现在函数内部声明的数组不能初始化变量,比如
var dArray:array[0..255] of dword=(2,3,5,6)
是错误的,有两处错误,一是不能进行数组初试化,二是数组元素个数不一致。我后来声明一个全局数组,结果是可以初试化,但是由于我不在前面说了,我录入的数据是若干个我也不确定是多少个,
但是却需要先确定数组元素个数然后进行初试化,我不知道有没有其他办法可以实现我想要的效果。

解决方案 »

  1.   

    嗯,这种情况,首先,全局数组变量声明的同时进行初始化赋值,要求元素个数要正确。其次,局部变量在声明的同时不能赋值。常量可以。上面说的都是固定元素个数的数组。而你需要的是动态数组。动态数组赋初值,需要:1、明确元素个数(分配内存空间):SetLength(Arr, 个数);2、赋初值,如果所有元素的值都是一样的,可以用:FillChar或FillMemory等函数3、如果元素的值可不相同,而元素个数又极多,可以把值预先放到一个TXT文件中,或一个INI文件中,用一个循环读取赋值。
      

  2.   

    LS说的得有道理,不过这些我也都考虑过了,感觉DELPHI在数组上有点缺陷,不能自由赋值
      

  3.   

    另外我不明白你需的要的一种什么样的自由境界?能否描述一下?
    录入的数据是若干个我也不确定是多少个----却要让Delphi在编译前就初始化?虽然我不是Delphi的狂热崇拜者,但我觉得Delphi的作者的作品是值得推敲的好作品。