Вниз
Скачать: CL | DM;

Как быстро скопировать record ?   Найти похожие ветки 

← →
AnEnd   (2007-01-10 02:35) [0]

Удалено модератором
Примечание: Восстановление закрытой ветки


← →
DevilDevil ©   (2007-01-10 02:45) [1]

самый быстрый способ - самый банальный:

RecVar1 := RecVar2;


← →
Германн ©   (2007-01-10 03:02) [2]


> Как быстро скопировать record ?
>
> AnEnd   (10.01.07 02:35)
>
> К какому выводу то пришли?
> В общем нельзя скопировать?

В общем можно, но сложно :)
Лучше конкретно, а не в общем :)


← →
Gero ©   (2007-01-10 04:43) [3]

> К какому выводу то пришли?

Пока ни к какому не пришли.


← →
Gydvin ©   (2007-01-10 06:40) [4]


> самый быстрый способ - самый банальный:
>
> RecVar1 := RecVar2;


Кстатит я тоже копировал прямым присваиванием, и у меня сложилось впечатление, когда сложный record, что-то подглючивает, происходит потеря данных. Или может у меня глюки?


← →
AnEnd   (2007-01-10 07:19) [5]


> Gero ©   (10.01.07 04:43) [3]
> > К какому выводу то пришли?
> Пока ни к какому не пришли.


А чего тему закрыли тогда?
http://delphimaster.net/view/2-1168229678/


> Gydvin ©   (10.01.07 06:40) [4]
> Кстатит я тоже копировал прямым присваиванием, и у меня
> сложилось впечатление, когда сложный record, что-то подглючивает,
>  происходит потеря данных. Или может у меня глюки?


А в этом случае разве не только указатель копируется?


← →
Loginov Dmitry ©   (2007-01-10 07:48) [6]

> Кстатит я тоже копировал прямым присваиванием, и у меня
> сложилось впечатление, когда сложный record, что-то подглючивает,
> происходит потеря данных...


А сможешь привести соответствующий код в качестве доказательства?


← →
evvcom ©   (2007-01-10 10:36) [7]

> [5] AnEnd   (10.01.07 07:19)
> А в этом случае разве не только указатель копируется?

Какой указатель? Посмотри SizeOf(RecVar). Данные копируются, причем довольно умный алгоритм там прописан. Стринги, дин.массивы внутри записи - да, копируются указатели, но и RefCount увеличивается, а данные простых типов просто копируются и усё. Другие записи внутри исходной рекурсивно тоже копируются.


← →
MsGuns ©   (2007-01-10 11:12) [8]

Массив вариантов ?


← →
Gydvin ©   (2007-01-10 11:23) [9]


> > Кстатит я тоже копировал прямым присваиванием, и у меня
>
> > сложилось впечатление, когда сложный record, что-то подглючивает,
>
> > происходит потеря данных...
>
>
> А сможешь привести соответствующий код в качестве доказательства?
>


Пока нет. Потому и написал, что возможно у меня глюки.

хотя вот кое что есть.

type
 Tnedel = record
   poned, ftorn, sred, chetv, patn, subbot, voskr: widestring;
end;

type
 Tkaz = record
   FileName: string;
   NameKanal: widestring;
   Dni: Tnedel;
 end;

""""
function poluchit (i:intger) :tkaz;
....
var
 fileopen: array of Tkaz;
.....

var
x:integer;
begin
setlength(fileopen,5);

for x:=0 to 4 do fileopen[x]:=poluchit(x);

end;

в function poluchit заполнение полей result происходит присваиванием каждому полю своего значения по учереди.

какова вероятность здесь потерять данные? У меня по каким=то причинам происходит (иногда) их потеря.


> А в этом случае разве не только указатель копируется?


Копируются именно данные


← →
evvcom ©   (2007-01-10 11:43) [10]

> [8] MsGuns ©   (10.01.07 11:12)

Ты это сейчас с кем и/или о чем?


← →
MsGuns ©   (2007-01-10 11:51) [11]

>evvcom ©   (10.01.07 11:43) [10]
>Ты это сейчас с кем и/или о чем?

Прошу прощения, не "въехал", подумал что имеется в виду "запись" датасета. А так, ответ в [1], за исключением случаев когда в структуре есть элементы списков



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.041 c
15-1168112286
DRG
2007-01-06 22:38
2007.01.28
Game Prelauncher


2-1168353038
FIL-23
2007-01-09 17:30
2007.01.28
RadioButton свойство Caption в две, три строки


8-1149216168
h8394E
2006-06-02 06:42
2007.01.28
Библиотеки DirectX8 -> d3dx8ab.dll или d3dx8d.dll


2-1168426545
Kcor
2007-01-10 13:55
2007.01.28
DateTimePicker


8-1149096765
Михайлов Антон
2006-05-31 21:32
2007.01.28
прогрессив скин




   Наверх