电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

S57文件结构分析VIP免费

S57文件结构分析_第1页
1/10
S57文件结构分析_第2页
2/10
S57文件结构分析_第3页
3/10
S57 文件存储结构 一、 D D R 结构 D D R 中定义了文件的总体信息, 包括文件名, 字段名, 字段类型, 字段格式和长度, 字段间的关系, 及子字段. 1. 文件头区 2 4 个字节, 内容如下表 记录长度是指DDR 的总长度. 2. 记录区 记录区从第25 个字节开始, 直到字节值=30 为止. 30 称为字段终结符(FT=30). 每个记录的长度由: 文件头区中的, 字段长度大小, 字段位置大小, 字段标识的大小之和决定. 每个记录描述一个字段的基本信息(名称、长度、起始位置). 每个记录是定长的. 3.字段区 记录区中的每一条记录对应一个字段,然后在字段描述区进一步给出字段的具体信息。每个字段的描述信息之间由字段终结符(FT 30)隔开。每个字段的描述信息内部不同部分由单元终结符(UT=31)隔开。其中每个字段描述信息的第一部分为字段的控制信息, 共9 个字节组成。 D D R 的第一个字段为控制字段,字段名为"0000"(地址为:目录区后的第一个字节(文件头+目录区的长度)) 控制字段给出了文件名、及全部字段的结构信息。 例如:如下控制字段数据可生成对应的字段结构图 D D R 的其余字段为数据描述字段,(地址为:目录区后的第一个字节+ 该字段的偏移量)。 例如:如下的字段描述字段为 4.程序实现 S57-文件对应的DDFModule 类,在该类中读入DDR 信息。其中,DDR 文件头存入achLeader 中。 char achLeader[nLeaderSize]; // nLeaderSize =24 DDR 中完整数据存入:pachRecord 中。 pachRecord = (char *) CPLMalloc(_recLength);// _recLength在文件头中的第一个域中定义。 根据DDR文件头中定义内容和终止符计算DDR中字段的记录个数。 for( i = nLeaderSize; i < _recLength; i += nFieldEntryWidth ) { if( pachRecord[i] == DDF_FIELD_TERMINATOR ) break; nFDCount++; } 在字段的每一条记录中,得到每一个字段的标识、长度、起始位置(从记录区后面的第一个字节开始计算)。 根据记录区中定义的各字段标识、长度、起始位置在字段区中取到该字段对应的描述信息。主要包括字段名称、描述及在后面数据区中占的位置和转换格式。例如 SG2D 对应的描述为: 定义了 Y 、X 坐标为 2 个实数。 程序处理中,将每一个记录定义为一个对象,其基类为:DDFFieldDefn DDFFieldDefn *poFDefn; AddField( poFDefn ); void DDFModule::AddField( DDFFieldDef...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

S57文件结构分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部