0

目标是将一种特殊类型的文件加载到内存中,然后将其所有数据分配给称为 spec[] 的数组中的对象。所有将被重新分配给它的东西。问题是,无论出于何种原因,我的对象识别代码都无法正常工作。special.type 指的是它是什么类型的文件,并且在我的文件中定义,但它抛出一个异常,说 special 是一个 nil 值。Special = {type = 0} 和 special 下的函数确实存在,所以我不知道它是关于什么的。代码如下。

function specload(file)
   if (spec==16) then return -1 end
   local spehand=0
   local specdata=0
   checkArg(1, drv, "string")
   local tmp="/special/" .. file
   if (filesystem.exists(tmp)==true) then
    spechand=filesystem.open(tmp)
    tmp=""
    repeat
     specdata=filesystem.read(spechand, math.huge)
     tmp = tmp .. (specdata or "")
    until not specdata
    read = load(tmp)
    read()
    tmp=0
    if not special.type then
      while true do
       if(spec[tmp]==0) then
          spec[tmp]=special
          special=nil
         else
          tmp=tmp+1
        end
       end
     end
   end
 end

从中,您能找出问题所在,还是我需要引入更多数据?

4

0 回答 0