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

присвоение записей   Найти похожие ветки 

 
msgipss   (2004-01-22 19:26) [0]

Здравствуйте, есть 2 переменные типа record, как нибудь можно присвоить одну переменную другой (т.е наполнить данными), без поочередного присвоения свойств записей.
сорьки за ламерский вопрос..


 
Тимохов ©   (2004-01-22 19:29) [1]

Можно
r1 := r2


 
jack128 ©   (2004-01-22 19:29) [2]


> есть 2 переменные типа record,
record это не тип


 
msgipss   (2004-01-22 19:31) [3]

r=record
s:string;
k:word;
end;
r1,r2:r;
как нибудь персвоить "r2:=r1" без этого r2.s:=r1.s и т.д.


 
TButton ©   (2004-01-22 19:33) [4]

никак. т.е. просто так никак, это точно, будет тайп мисмач, типа несовпадение типов.


 
msgipss   (2004-01-22 19:35) [5]

я понимаю, что так никак, хотя никакого несовпадения не будет..
В дельфях никаких функций нет для копирования памяти.. ?
Что то по моему было..


 
msgipss   (2004-01-22 19:36) [6]

я понимаю, что так никак, хотя никакого несовпадения не будет..
В дельфях никаких функций нет для копирования памяти.. ?
Что то по моему было..
Мне бы не хотелось в явном виде делать присвоение свойств record"а, как ни будь это можно обойти ?


 
Тимохов ©   (2004-01-22 19:40) [7]

TButton © (22.01.04 19:33) [4]
Да не уж то?


 
Agent13 ©   (2004-01-22 19:42) [8]


> Тимохов © (22.01.04 19:29) [1]
> Можно
> r1 := r2

А по-моему это должно пройти нормально - и не надо никаких функций.


 
msgipss   (2004-01-22 19:47) [9]

Да.., странно сделал simple пример - все, работает, а в своем проекте, пустые поля возвращает... буду разбираться.., сорьки


 
TButton ©   (2004-01-22 20:14) [10]

Тимохов ©
и ведь точно... значить надо будет у точнить обстоятельства при которых был мисматч, но то что он был - факт...


 
Тимохов ©   (2004-01-22 20:16) [11]

А вот и он: тайп мисматч
var
r1:record
s:string;
k:word;
end;
r2:record
s:string;
k:word;
end;
begin
r1 := r2
end;


 
cyborg ©   (2004-01-22 20:16) [12]

Move(@r1,@r2,SizeOf(r1));


 
Тимохов ©   (2004-01-22 20:19) [13]

Ага строки также будете мовить?
Нафиг дельфовый подстчет ссылок: он для дураков, наверное. :)))))


 
cyborg ©   (2004-01-22 20:21) [14]

>>Ага строки также будете мовить?
да, только тип строк нужно сделать ShortString, либо String[число символов].


 
Тимохов ©   (2004-01-22 20:22) [15]


> да, только тип строк нужно сделать ShortString, либо String[число
> символов].

Этто точно...
и дин массивами не пользоваться...
и интерфейсами также...


 
YuRock ©   (2004-01-22 20:22) [16]


CopyMemory(@r1, @r2, SyzeOf(r));


И все будет отлично (кроме стринга)


 
YuRock ©   (2004-01-22 20:22) [17]

...
Хотя и стринг, скорее всего, будет работать


 
Тимохов ©   (2004-01-22 20:23) [18]


> ...
> Хотя и стринг, скорее всего, будет работать

До тех пора не выйдешь из scope, где объявлена record.


 
cyborg ©   (2004-01-22 20:25) [19]

Если нужны длинные строки или какие-то объекты, то после копирования ничего не мешает присвоить параметры таким переменным.


 
YuRock ©   (2004-01-22 20:25) [20]

> Тимохов © (22.01.04 20:23) [18]

Ну да, конечно...

Ну так и без копирования то же самое, если использовать String в структурах, ведь полю то присваивается на самом деле только указатель.


 
Тимохов ©   (2004-01-22 20:26) [21]


> Если нужны длинные строки или какие-то объекты, то после
> копирования ничего не мешает присвоить параметры таким переменным.

Да не уж то???



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

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



Память: 0.49 MB
Время: 0.017 c
1-16444
nv
2004-01-27 09:40
2004.02.06
А можно ли из DLLки (типа плагина) получить переменне основной пр


3-16176
Sibskan
2004-01-13 16:48
2004.02.06
Такая ошибка Connection is in use by another statement


8-16518
Дмитрий
2003-10-04 00:48
2004.02.06
Проигрывание файлов формата Ogg Vorbis (*.ogg)


1-16477
Nic2
2004-01-27 14:51
2004.02.06
Инсталляция компонента


1-16341
Юрий Ж.
2004-01-24 19:08
2004.02.06
Как получить доступ к БИТАМ?




   Наверх