tkela二次开发之lay文件解析
在tekla的一些配置文件中绝大都是本文格式存储的,如.dim;.ad;.vi;.tpl等文件;但是其中.lay文件却是一个例外;这个文件用txt开打时里面是会有乱码的。
我们知道这个文件是在软件的界面中配置的,其中版面布置中的每一个行数据对应一份lay文件。

接下来我们就对这个文件中的内容进行解析:下图是用程序读取文件的二进制数据,截取了其中一部分;其中每一个格子表示一个Byte位,从0到255;

这个文件中的数据分为三部分:
一、第一部分是数据头;长度不一定;因这一部分数据对二开没什么作用就不做解析了。
二、第二部分数据是表格布置列表(图一中间)其中一组数据为177位;数据位置含义如下图所示:

1、前5位46100表示一组数据的起始位;
2、5-8这4位表示此表格布置的Id;数据为INT32类型;
3、13-75这63位表示表格布置的名称;编码格式位ANSI;
4、77-88这个12位表示 e3_sheet_tab 这个固定的这12个单词;
5、145-152这8位表示边缘宽度这个属性;数据为double格式;
6、153-160这8位表示边缘高度这个属性;数据为double格式;
7、161-168这8位表示间隔水平的这个属性;数据为double格式;
8、169-176这8位表示间隔垂直的这个属性;数据为double格式;
三、第三部分数据表格是已选择的表格列表(图一右图)其中一组数据为573位;数据位置含义如下图所示:

1、前5位47100表示一组数据的起始位;
2、5-8这4位表示此已选表格的Id;数据为INT32类型;
3、13-267这255位表示已选择的表格的名称;编码格式位ANSI;
4、269-272这4位表示父表格id(数据二中的5-8位);数据为INT32类型;
5、273-276这4位表示常考表格的id;数据为INT32类型;
6、281-288这8位表示比例这个属性;数据为double格式;
7、289-296这8位表示角部间的矢量x这个属性;数据为double格式;
8、297-304这8位表示角部间的矢量y这个属性;数据为double格式;
9、305-308这4位表示参考的排布这个属性;数据为INT32类型;其中1234分表示右上、右下、左上、坐下;
10、309-312这4位表示参考的排布这个属性;数据为INT32类型;其中1234分表示右上、右下、左上、坐下;
11、569这1位表示透明的这个属性; 1为透明 0为不透明;
tkela二次开发之lay文件解析的更多相关文章
- [置顶] Android开发之XML文件的解析
Android系统开发之XML文件的解析 我们知道Http在网络传输中的数据组织方式有三种分别为:XML方式.HTML方式.JSON方式.其中XML为可扩展标记语言,如下: <?xml vers ...
- Nutch 二次开发之parse正文内容
关于nutch的基础知识能够參考lemo的专栏 nutch支持二次开发,为了满足搜索的准确率的问题,考虑只将网页正文的内容提取出来作为索引的内容,相应的是parse_text的数据.我使用的事nutc ...
- EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码
不管是基于EasyNVR还是EasyDSS,都是支持无插件直播,这也是未来视频直播的一个趋势.对于传统的浏览器插件播放谁用谁知道: 以上是软件自带播放展示 背景需求 对于EasyNVR和EasyDSS ...
- PDMS二次开发之PML开发一些常见查询语句
1.查找session 以及session number var !DBname DBname !db = object db(!DBname) !session = !db.lastsession( ...
- iOS开发之.pch文件初识
pch全称是“precompiled header”,即预编译头文件,自Xcode6诞生之日起,便在Supporting Files文件下消失多年.说起苹果对pch的爱恨情仇,其分析pch的作用便不言 ...
- Android开发之assets文件夹中资源的获取
assets中的文件都是保持原始的文件格式,需要使用AssetManager以字节流的形式读取出来 步骤: 1. 先在Activity里面调用getAssets() 来获取AssetManager引用 ...
- Android开发之R文件丢失
在进行android开发的过程中,不知道怎么回事,代码中出现R代码有红色波浪线了,于是进行了clean,结果还是有红色波浪线,然后就重启了eclipse,重启以后还是这个样子,随后发现工程的R文件丢失 ...
- 李洪强iOS开发之-PCH文件的配置
pch 可以用来存储共享信息,比如设备屏幕的宽度,高度.版本号等等 公用信息 Xcode 老版本会自动为我们创建pch文件,新版本开始不自动创建了,如果需要使用可以自己手动创建 创建完成后可以在里面定 ...
- iOS开发之pch文件
项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件 pch头文件的内容能被项目中的其他所有源文件共享和访问 一般在pch文件中定义一些全局的宏 在 ...
- iOS开发之zip文件解压
今天给大家分享zip解压到指定目录 首先需要下载ZipArchive文件 下载地址:https://pan.baidu.com/s/1S6qYicoVr3M3hI0M1EW2Bw 将下载的文件导入工程 ...
随机推荐
- SpringBoot整合Dubbox(无XML配置)
简介 Dubbox是当当网对阿里的Dubbo进行增强的一个分支.在使用springboot之后,我们发现很多配置并不一定要使用xml.这篇文章的目的是让你使用Dubbox时能像使用springboot ...
- mongodb 查看、创建、修改、删除索引
简介 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询 ...
- markdown设置目录、锚点
目录 在编辑时正确使用标题,在段首输入[toc]即可 锚点 创建到命名锚记的链接的过程分为两步: 首先是建立一个跳转的连接: [说明文字](#jump) 然后标记要跳转到什么位置,注意id要与之前(# ...
- 性能优化之使用HTTP2.0
HTTP2.0 的优势 配置 测试 怎么查看当前网站http版本 chrome HTTP协议版本检测 Chrome 控制台 window.chrome.loadTimes() { commitLoad ...
- storm部署文档
背景 这篇笔记原来是记录在印象笔记中的,没有发布到博客中,这次我重新整理一下发布上来,希望给读者以参考. Storm的部署手册 Zookeepr的部署 首先下载安装包:apache-zookeeper ...
- Go语言实现1024终端游戏-不到400行代码
先放源码地址,喜欢看源码翻源码,喜欢看文章的继续继续看文章 https://github.com/taadis/go1024 - go1024 使用 go 语言实现的 1024 终端游戏,不到400行 ...
- Cannot attach the file *.mdf as database
使用ASP.NET MVC 4 和 Entity Framwork 6(Code First)爬的一个坑,无意间把App_Data下的*.mdf文件删除了,然后程序编译正常,但是运行异常RT,留爪. ...
- xe10.3+paserver在Ubuntu下运行错误
xe.3的paserver在Ubuntu下执行呈现乱七八糟的错误提示. 原因:Ubuntu的版本和paserver编译的环境不一致. 注意:使用ARM64的版本.如ubuntu-18.04.2-des ...
- P3392 涂国旗 题解
题目大意 题目真的是不说人话...... 有一个国家的国旗是由一个 N * M 的方格组成的.如果想要这面国旗合法,就必须满足要求: 国旗从上到下必须是白色.蓝色和红色,顺序不能改变. 每一种颜色都至 ...
- Go单元测试与报告
1.编写代码 1)打卡GoLand,新建项目命名为gotest 2)在gotest目录下新建两个go file,如下图所示: 其中CircleArea.go为计算圆面积的待测go程序,代码如下: pa ...