tcl struct :: matrix Предупреждение: не может отменить "colw (0)": такого элемента в массиве нет - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать матрицу, используя следующий код:

package require struct::matrix
::struct::matrix GUI_TABLE
set NEW_LINE [list Data0 Data1 Data2 Data3 Data4]
GUI_TABLE add columns [llength $NEW_LINE]
GUI_TABLE add row $NEW_LINE
set NEW_LINE [list Data5 Data6 Data7 Data8 Data9]
GUI_TABLE add row $NEW_LINE
GUI_TABLE format 2chan

Но проблема в том, что я получаю следующие предупреждения каждый раз, когда добавляю строку:

//  Warning: can't unset "colw(0)": no such element in array
//  Warning: can't unset "colw(1)": no such element in array
//  Warning: can't unset "colw(2)": no such element in array
//  Warning: can't unset "colw(3)": no such element in array
//  Warning: can't unset "colw(4)": no such element in array

Единственный способ удалить предупреждение, которое я смог найти, - это выполнить команду columnwidth для столбца, что делает код очень медленным, если матрица большая.Я не знаю, почему я получаю предупреждение, и есть ли лучший способ избавиться от него?любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 05 октября 2018

Спасибо Mrcalvin и Glenn Jackman за поддержку и руководство, чтобы найти причину проблемы.Вот сводка: - Код для struc :: matrix использует команду catch, чтобы избавиться от предупреждений / ошибок, подобных тому, который я имел.- Проблема в том, что я использовал инструмент EDA, который переопределил команду catch и выявил предупреждение / ошибку, которая была намеренно замаскирована в исходном коде.- Решением было использование специальной команды catch, которую предоставляет инструмент EDA, для маскировки предупреждений при добавлении новой строки.Как это:

package require struct::matrix
::struct::matrix GUI_TABLE
set NEW_LINE [list Data0 Data1 Data2 Data3 Data4]
GUI_TABLE add columns [llength $NEW_LINE]
catch_special { GUI_TABLE add row $NEW_LINE}
set NEW_LINE [list Data5 Data6 Data7 Data8 Data9]
catch_special { GUI_TABLE add row $NEW_LINE }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...