Delphi 内存复制与记录到另一个记录

标签 delphi memory copy record

我的逻辑有问题。我不知道如何在 Delphi 中将记录复制到另一条记录。

TypeA = record
  value1 : word;
  value2 : word;
  value3 : word;
  end;

TypeB = record
  b1 : byte;
  b2 : byte;    
  end;

我有两条记录 TypeA 和 TypeB。例如,我发现TypeA记录中的数据属于TypeB记录。 注意:TypeA 的数据长度较长。

问题:如何复制TypeA内存并将其放入TypeB记录中?

CopyMemory(@TypeA, @TypeB, Length(TypeB))

当我尝试 CopyMemory 并收到错误(不兼容类型)

PS: I don't want to copy or assign it like below.

TypeB.b1 := TypeA.value1 && $FF;

TypeA and TypeB are just example records. Most of thecases, record TypeA and TypeB may contain multple records and it will be harder to allocate form TypeA and assign to TypeB record.

提前致谢

----附加问题:

有没有办法将 Delphi 记录复制到字节数组?如何?如果有的话,

  • 将一条记录键入字节数组
  • 字节数组转为 B 型

这个逻辑行得通吗?

最佳答案

CopyMemory(@a, @b, SizeOf(TypeB))

如果 a 的类型为 TypeAb 的类型为 TypeB

关于Delphi 内存复制与记录到另一个记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9406792/

相关文章:

delphi - 如何在泛型类中声明枚举类型的集合类型

delphi - 递归复制目录并在没有用户确认的情况下覆盖所有文件

delphi - 如何在 freepascal/lazarus 的子进程中实现 cef3 渲染进程处理程序

delphi - 如何在 Delphi 中将指针类型数组传递给 RttiMethods.Invoke

mysql - MySQL InnoDB表数据同步到Memory表的方法

C编程: Freeing nested multidimensional arrays inside structs

java - 使用 .clone() 复制二维数组仍然引用原始数据

excel - 从启用宏的工作簿复制数据

delphi - Delphi XE 中的 Ansi TStringList 用于非 Unicode 兼容性

ios - 由于内存压力而终止