Какой существует более простой способ стирания информации с полей записи одного елемента "массива записей", чем присваивание этому елементу значений не заполненого елемента этого же "массива записей"?
volvo
5.03.2006 0:19
Что значит "более простой"? Быстрее? Меньше писанины? Надежнее? Саму запись тоже приведи, ибо в зависимости от этого могут быть разные ответы...
TS*
5.03.2006 0:35
procedure del_item(j:byte); begin for i:=j to nums do note[i]:=note[i+1]; num_rec:=num_rec-1; end;
где num_rec -- номер записи, note -- масив записей, сам масив note создаеться с одним лишним элементом, значение которого(а значения его полей "пустые" присваивиться) елементу который удаляеться, а елементы которые стоят после него на "один" "опускаються". Хотелось чтобы не нужно было создавать "лишний элемент". А также чтобы было меньше писанны...
volvo
5.03.2006 0:51
совсем коротко (если num_rec - размер массива ДО удаления элемента):
procedure del_item(j:byte); begin move(note[j+1], note[j], (num_rec - j)*sizeof(note[1])); dec(num_rec); end;
- полный аналог твоего кода, только вот выполняться будет в несколько раз быстрее... И не надо ничего ничему присваивать... Просто не обращай на последние "недействительные" элементы внимания. Не зря же у тебя есть num_rec... Если же так хочется их все же обнулить, то создай константу с пустой записью EmptyRec и делай: