powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как очистить очистить только одно поле записи (record)?
25 сообщений из 32, страница 1 из 2
Как очистить очистить только одно поле записи (record)?
    #39544575
Вопрос: как очистить очистить только один элемент записи, тоже являющейся записью с кучей элементов?
Есть ну очень многоуровневая запись из колоссального числа элементов, прописывать в ручную очистку отдельного подэлемента записи - сложно, ибо там тоже множество подэлементов, огромных массивов записей и прочего, прочего.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544586
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Bujhtdbx,

Finalize(rec.field);
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544593
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей BujhtdbxВопрос: как очистить очистить только один элемент записи, тоже являющейся записью с кучей элементов?
Есть ну очень многоуровневая запись из колоссального числа элементов, прописывать в ручную очистку отдельного подэлемента записи - сложно, ибо там тоже множество подэлементов, огромных массивов записей и прочего, прочего.

В некоторых случаях поможет finalize(), но в общем виде - никак. От тупых решений ты должен страдать.

Хотя, я думаю, ты просто врешь.

ТСну очень многоуровневая запись из колоссального числа элементов...там тоже множество подэлементов, огромных массивов записей и прочего, прочего
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544608
чччД,

Именно так, чтож мне ещё делать, кроме как врать на данном форуме. :)

Поясню для неверующих. Программу пишу для себя, для визуализации данных используемых в работе. Ни разу не программист(1 го в универе только).

Есть файл нейтронных полей состоящий из:
Нескольких уровней энергий нейтронов, каждый из которых состоит из:
нескольких десятков отсечек по времени(в разных ситуациях - разное количество), каждая из которых состоит из:
нескольких десятков (в разных ситуациях - разное количество) отсечек по высоте, каждая из которых состоит из:
нескольких сотен каналов (в разных ситуациях - разное количество), каждая из которых состоит из:
нескольких сотен (в разных ситуациях - разное количество) твэлов. Помимо этого в каждом из уровней есть куча параметров (ради которых и использую записи), вроде того же числа элементов на этом уровне, каких-то геометрических или физических параметров, соответствие номера временной отсечке конкретному времени, высотной - высоте и ещё сотни других параметров.

Естественно можно использовать обычные массивы, кучи глобальных переменных, и самое веселое - потом все это сохранять и загружать. А можно использовать одну или несколько записей.

Вот часто нужно очистить элементы на самом разном уровне, очищать динамически массивы и кучи элементов - та ещё радость.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544611
Kazantsev AlexeyАндрей Bujhtdbx,

Finalize(rec.field);

спасибо - попробуем.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544620
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Bujhtdbx,

ну так используй классы, а не записи.

В деструкторах - код очистки.
Вместо массивов - контейнеры с опцией владения, вызвал .Clear() - и всё, пошла очистка.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544627
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей BujhtdbxKazantsev AlexeyАндрей Bujhtdbx,

Finalize(rec.field);

спасибо - попробуем.
Что там пробовать. Если у тебя элементом записи будет экземплярам класса или ссылка на запись из кучи - ?
Или ты собрался "статические" записи конструировать, сразу на всю глубину?
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544648
чччДАндрей Bujhtdbxпропущено...


спасибо - попробуем.
Что там пробовать. Если у тебя элементом записи будет экземплярам класса или ссылка на запись из кучи - ?
Или ты собрался "статические" записи конструировать, сразу на всю глубину?

Можно и классы использовать, и очистку прописать, может так и сделаю, просто спросил про способы попроще, особой необходимости в классах не видел тут.
И да, классы на всю глубину, правда хотел динамически задавать, но пока до этого не добрался.
Много чего можно, я исходил из удобства и быстроты использования.

Kazantsev AlexeyАндрей Bujhtdbx,

Finalize(rec.field);

Видимо что-то делаю не так:
Finalize(gl.Time);

не очищает аналогично такому коду :

for i:=0 to 50 do
begin
for j:=0 to 100 do Gl.Time.camp[i].Kp[j]:=0;
Gl.Time.camp[i].N:=0;
Gl.Time.camp[i].SumT:=0;
end;
Gl.Time.NCamp:=0;

Что я делаю не так?
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544658
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей BujhtdbxЧто я делаю не так?
Finalize очищает поля только управляемых типов (строки, кроме shortstring, динамические массивы, интерфейсы, варианты). Если нужно обнулять всё, то использовать следует FillChar(r.field, SizeOf(r.Field), 0);

Если в поле r.Field есть управляемые типы, то перед вызовом FillChar нужно вызать Finalize;
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544682
Kazantsev AlexeyАндрей BujhtdbxЧто я делаю не так?
Finalize очищает поля только управляемых типов (строки, кроме shortstring, динамические массивы, интерфейсы, варианты). Если нужно обнулять всё, то использовать следует FillChar(r.field, SizeOf(r.Field), 0);

Если в поле r.Field есть управляемые типы, то перед вызовом FillChar нужно вызать Finalize;

Спасибо, отлично работает, именно то, что нужно, а то классы, методы. Хотя... :).
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544696
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей BujhtdbxСпасибо, отлично работает, именно то, что нужно, а то классы, методыесли вдруг упрешься в этом месте по скорострельности возможно интересно будет глянуть в сторону SynopseRTL или аналогичных патчей финализатора
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544702
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavanвозможно интересно будет глянуть в сторону SynopseRTL или аналогичных патчей финализатора
Это решается проще - подготовленной пустой переменной ;). Обычное присваивание работает быстрее finalize;
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544711
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
MyRec:=default(TMyRec);



Документации нет, но вроде как всегда обнуляет.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544753
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если ему нужно что-то финализировать а не только лишь занулять то оптимизированный финализатор кажется может таки представлять интерес
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544756
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дождемся когда конструктор и деструктор к рекорду приделают, тогда и заживем.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544761
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
30.10.2017 18:44, rgreat пишет:
> Дождемся когда конструктор и деструктор к рекорду приделают, тогда и заживем.


и VMT, чтоб было!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544764
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatДождемся когда конструктор и деструктор к рекорду приделают, тогда и заживем.
Давно уже. Только там кОдить придется, а он не желает.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544766
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДrgreatДождемся когда конструктор и деструктор к рекорду приделают, тогда и заживем.
Давно уже. Только там кОдить придется, а он не желает.Поднимите мне веки Покажите мне как кодить деструктор рекорда.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544770
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatчччДпропущено...

Давно уже. Только там кОдить придется, а он не желает.Поднимите мне веки Покажите мне как кодить деструктор рекорда.

Создаешь метод с именем Clear, и фсио. :)
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544783
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДСоздаешь метод с именем Clear, и фсио. :)Прямо совсем фсио или его еще потому ручками надо у каждого рекорда вызвать? :)
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544801
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatПрямо совсем фсио или его еще потому ручками надо у каждого рекорда вызвать? :)
Так и у классов его вручную вызывать надо :)
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544806
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей BujhtdbxчччД,

Именно так, чтож мне ещё делать, кроме как врать на данном форуме. :)

Поясню для неверующих. Программу пишу для себя, для визуализации данных используемых в работе. Ни разу не программист(1 го в универе только).

Есть файл нейтронных полей состоящий из:
Нескольких уровней энергий нейтронов, каждый из которых состоит из:
нескольких десятков отсечек по времени(в разных ситуациях - разное количество), каждая из которых состоит из:
нескольких десятков (в разных ситуациях - разное количество) отсечек по высоте, каждая из которых состоит из:
нескольких сотен каналов (в разных ситуациях - разное количество), каждая из которых состоит из:
нескольких сотен (в разных ситуациях - разное количество) твэлов. Помимо этого в каждом из уровней есть куча параметров (ради которых и использую записи), вроде того же числа элементов на этом уровне, каких-то геометрических или физических параметров, соответствие номера временной отсечке конкретному времени, высотной - высоте и ещё сотни других параметров.

Естественно можно использовать обычные массивы, кучи глобальных переменных, и самое веселое - потом все это сохранять и загружать. А можно использовать одну или несколько записей.

Вот часто нужно очистить элементы на самом разном уровне, очищать динамически массивы и кучи элементов - та ещё радость.ядерщик что ли?

вроде все пакеты моделирования визуализацией обладают.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544811
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatчччДСоздаешь метод с именем Clear, и фсио. :)Прямо совсем фсио или его еще потому ручками надо у каждого рекорда вызвать? :)

Это с каких пор в Delphi конструкторы и деструкторы сами собой вызываются?
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544821
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДЭто с каких пор в Delphi конструкторы и деструкторы сами собой вызываются?Со времен появления интерфейсов и ввода ARC.
...
Рейтинг: 0 / 0
Как очистить очистить только одно поле записи (record)?
    #39544825
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatчччДЭто с каких пор в Delphi конструкторы и деструкторы сами собой вызываются?Со времен появления интерфейсов и ввода ARC.

Арсений, зачем Вы травите Писателя? Интересно, почему дельфисты смешивают интерфейсы и АРЦ?
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как очистить очистить только одно поле записи (record)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]