Вниз
Скачать: 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.021 c
1-16232
Lekss
2004-01-26 19:48
2004.02.06
Raise


1-16367
Кен
2004-01-16 06:03
2004.02.06
Как подружить тритичную систему с двоичной ?


14-16635
MVova
2004-01-14 17:28
2004.02.06
Извращения, или может можно так делать?


14-16606
ИМХО
2004-01-15 05:44
2004.02.06
Delphi vs. Visual Basic


3-16169
korvin
2004-01-13 09:21
2004.02.06
dxDBGrid событие смены активного колумна




   Наверх