Parametry
destination | prom∞nnß, do nφ₧ se kopφruje |
source | prom∞nnß, z nφ₧ se kopφruje |
size | poΦet p°enßÜen²ch bajt∙ |
Popis
Procedura Memcpy
slou₧φ pro p°enos (kopφrovßnφ) dat bez ohledu na jejich typy. P°enßÜφ se poΦet bajt∙ zadan² parametrem size z prom∞nnΘ source do prom∞nnΘ destination. Je-li tento poΦet v∞tÜφ, ne₧ je velikost prvnφ prom∞nnΘ, m∙₧e snadno dojφt ke zhroucenφ systΘmu. Je-li tento poΦet v∞tÜφ, ne₧ je velikost druhΘ prom∞nnΘ, nenφ definovßno, co se p°enese. Ob∞ prom∞nnΘ mohou b²t libovolnΘho typu, nesmφ to b²t databßzovΘ sloupce.
Tato procedura dovoluje obchßzet typovΘ kontroly jazyka. Je to jejφ hlavnφ ·Φel.
P°φklad P°eΦtenφ identifikace u₧ivatele z tabulky USERTAB
type user = record n1 : string[16]; n2 : string[2]; n3 : string[20]; id : string[80]; end; var r : trecnum; my_name : string[31]; userobjnum : tobjnum; user1 : binary[122]; user2 : user; begin
r:=Insert(`₧ßdanky
o dovolenou`); if r=-1 then begin Signalize;halt;end;
with `Äßdanky o dovolenou`[r] do begin
my_name:=Who_am_I; if Find_object(my_name, CATEG_USER, userobjnum) then Signalize; user1 := USERTAB[userobjnum].identif;
// p°eΦtenφ z
tabulky USERTAB Memcpy(user2,user1,122); // zkopφrovßnφ do struktury user jmΘno := user2.n1;
// p°eΦtenφ ze struktury user
`druhΘ jmΘno`:= user2.n2;
p°φjmenφ := user2.n3;