Прошу помочь найти ошибку в коде простой функции

Страницы: 1
RSS
Прошу помочь найти ошибку в коде простой функции, Подозреваю выход за пределы видимости, но не могу обнаружить
 
Функция ниже пишет - ошибка в строке.... попытка индексации локальной переменной TrLine в блоке
if i > BPntIdx then
TrLine[i]=nil
SetValue(i, LineNumber, TrLine[i])
end

хотя точно в таком же блоке выше ошибки не возникает. В чем может быть проблема?
Код
function GETTRENDLINE(LineNumber,APntIdx,BPntIdx)
   local Line
   local indx
   local TrLine={}

   indx=Size();
   for i=1,indx do
      if i < APntIdx then
         TrLine[i]=nil
         SetValue(i, LineNumber, TrLine[i])
      end
      if i>=APntIdx and i<=BPntIdx then
            TrLine=g_tChLines["ChTrends"][i]
            SetValue(i, LineNumber, TrLine)
      end
      if i > BPntIdx then
         TrLine[i]=nil      
         SetValue(i, LineNumber, TrLine[i])
      end      
   end
   return TrLine
end
 
Судя по замыслу, TrLine - таблица:
Код
local TrLine={}

Вот в этом подозрительном месте TrLine (возможно) становится каким-то скаляром:
Код
TrLine=g_tChLines["ChTrends"][i]

Ну а на следующей итерации цикла попытка индексации скаляра - TrLine[i] и... получите ошибку.
 
Цитата
SDL написал:
Судя по замыслу, TrLine - таблица:
Абсолютно так
Цитата
SDL написал:
Вот в этом подозрительном месте TrLine (возможно) становится каким-то скаляром:КодTrLine=g_tChLines["ChTrends"]
Спасибо, въехал. Сам виноват, надо быть внимательней. Пропустил выражение для индексирования. Надо было так :КодTrLine[i]=g_tChLines["ChTrends"].
Еще раз благодарю.
Страницы: 1
Читают тему
Наверх