Доброго времени суток.
Имею проблему: пишу обработку данных для специализированного софта (это ПО поддерживает автоматизацию через написание скриптов на JavaScript). Хочу прочитать данные из файла в массив. обращение к файлу происходит так:
var oDmFile = new ActiveXObject("DmFile.DmTableADO");
далее в цикле идёт считывание данных в массив из файла, представляющего собой таблицу во внутреннем формате ПО. причём, каждый элемент создаваемого массива - сам по себе массив. делаю следующее:
var Source=[];//рабочий массив - сюда должны писаться данные из файла
var tmpArray=[0,0,0];//временный массив, нужен только для объяснения, что каждый член массива Source - массив
oDmFile.Open("tmp1.dm", true);//открываю файл
var num = oDmFile.GetRowCount();//определяю количество записей
for (i=1;i<=num;i++)
{
Source[i]=tmpArray;//объясняю, что текущий элемент рабочего массва - массив
Source[i][0]=oDmFile.GetNamedColumn(BodyName);//читаю из файла данных содержимое текущей строки и столбца BodyName
Source[i][1]=oDmFile.GetNamedColumn(IndName);//читаю из файла данных содержимое текущей строки и столбца IndName
Source[i][2]=oDmFile.GetNamedColumn("ABMSKO");//читаю из файла данных содержимое текущей строки и столбца ABMSKO
if (i<num) {oDmFile.MoveNext()}//передвигаюсь на следующую строку в файле
}
oDmFile.Close();//закрываю файл
проблема заключается в том, что при считывании второй записи и создании второго элемента массива первый элемент массива становится равным второму, при считывании третьей строки и создании третьего элемента массива первые два превращаются в третий и т.д. то есть, на выходе я имею массив идентичных элементов, равных последнему элементу массива. что я делаю не так?