加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 获取类型数组的记录字段的长度

发布时间:2020-12-15 09:41:43 所属栏目:大数据 来源:网络整理
导读:我正在编写一个与外部二进制API进行通信的包装器. API使用PDU(打包二进制记录)进行通信.字符串是AnsiChar的数组,并且是零终止的: type TSomePDU = packed record //... StringField: array[0..XYZ] of AnsiChar; //... end; PSomePDU = ^TSomePDU; 我想编写
我正在编写一个与外部二进制API进行通信的包装器. API使用PDU(打包二进制记录)进行通信.字符串是AnsiChar的数组,并且是零终止的:

type 
  TSomePDU = packed record
    //...
    StringField: array[0..XYZ] of AnsiChar;
    //...
  end;
  PSomePDU = ^TSomePDU;

我想编写一个接受String并填充char数组的FillPDUString过程,但我想避免在使用过程的任何地方跟踪MaxLength,所以我需要以某种方式获得声明的数组大小给定指向该字段的指针:

function GetMaxSize(const Field: array of AnsiChar): Integer;
begin
  // ???
end;

//...
GetMaxSize(ARecord.StringField);

这可能吗?

解决方法

如果我理解正确,那么你可以使用Delphi的 Length功能

以下是获取长度的方法:

function GetMaxSize(const Value: PSomePDU): Integer; 
begin
  Result := Length(Value.StringField);
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读