![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Здравствуйте! Я в программе использую запись, которая содержит большой объем информации о ферме.
Код:
TFerma = record //эта запись будет относиться ко всем фермам
kUz:integer; //количество узлов
kUzRasc:integer; //количество узлов учитывая расцентровку
Rascentr:boolean; //расцентрированы ли узлы
kSt:integer; //количество стержней
kStRasc:integer; //количество стержней, учитывая расцентровку
kOp:integer; //количество опорных закреплений
kZagr:integer; //количество загружений на ферму
Uzly:TMatr4x500; //матрица с координатами узлов. Номер строки соответствует номеру узла
Sterzhni:TSterzhVect; //вектор содержащий информацию о стержнях. Номер стержня соотв. номеру в векторе
UzlyR:TMatr4x500; //матрица с координатами узлов в случае если узлы расцентрированиы
SterzhniR:TSterzhVect; //вуктрор содержащий информацию о стержнях в случае расцентровки узлов
Opory:TOpZVect; //вектор содержащий информацию об опорных закреплениях
Zhest:TZhest; //жесткость элементов
kSvVp:integer; //количество связей по верхнему поясу
kSvNp:integer; //количество связей по нижнему поясу
Sv_po_Vp:TVect; //номера узлов, в которых есть связи по верхнему поясу
Sv_po_Np:TVect; //номера узлов, в которых есть связи по нижнему поясу
end;Иногда возникает надобность занулить все поля записи. Делаю так: ZeroMemory(@Ferma,SizeOf(Ferma)); Но при таком способе не все вложенные поля записи зануляются( Падает на мысль, что ZeroMemory придется вызывать для каждого поля отдельно, но это неудобно. Есть ли способ решить эту проблему? |
|
#2
|
||||
|
||||
|
Если у тебя в структуре есть записи с динамической длиной то ZeroMemory тебе и не поможет.
А вообще - такую больщую структуру уже наверное стоит оформить в класс. |
|
#3
|
|||
|
|||
|
"занулять" это неправильный термин. Для integer подойдёт. А если это экземпляр класса, то его надо уничтожить и ссылке присвоить nil. Так что для каждого типа своё решение.
|
|
#4
|
||||
|
||||
|
Спасибо за помощь.
С Aristarh Dark я полностью согласен, но программа уже так "разрослась", что без потери работоспособности сложно будет перейти к классу. Я попробую написать процедуру, которая будет уничтожать поля записи согласно их типам и вызывать её вместо ZeroMemory. |