Creo 二进制数据萃取-文件分块处理

原始文件示例

#UGC:2 PART 1878 1260 810 1 1 15 3500 2018190 000002cc \
#- VERS 0 0                                                          \
#- HOST                                                              \
#- LINK                                                              \
#- DBID                                                              \
#- REVS 0,                                                           \
#- RELL 0,                                                           \
#- UOBJ_ID 1688256260 1438060329 -1177950104                         \
#- MACH _Windows                                                     \
#- CMNM 00bprt0001.prt                                               \
#-END_OF_UGC_HEADER
#Creo  TM  4.0  (c) 2023 by PTC Inc.  All Rights Reserved. M060
#UGC_TOC 2 32 81 17#############################################################
ND:0:Model_L05_PX:1 ab1 91b 607 1878 a 1 ec9f a013##############################
ND:0:UnitSystemDef_L03:1 13cc 5d4 394 1878 a 1 04ca a5bc########################
ND:0:PDMTrail_L03:1 19a0 4cf 2f6 1878 a 1 ee53 91dd#############################
SolidPersistTable 1e6f d99 64f 1878 a 1 a937 8394###############################
SolidPrimdata 2c08 207 12f 1878 a 1 6789 ecb5###################################
FeatDefsIndex 2e0f 53 2e 1878 9 -1 1397 ae1b####################################
BasBasData 2e62 2c5 18e 1878 9 -1 9b74 b209#####################################
BasicData 3127 2938 1934 1878 9 -1 6a1b be89####################################
BasicText 5a5f 3f8 225 1878 9 -1 d5fa b165######################################
Geomlists 5e57 88 55 1878 9 -1 2111 a7ab########################################
GeomDepen 5edf 2c5 1a6 1878 9 -1 af65 6a85######################################
DispCntrl 61a4 1335 72d 1878 9 -1 fd85 9b4a#####################################
LargeText 74d9 4142 12a8 1878 9 -1 b346 0b5d####################################
Notes b61b 1d e 1878 9 -1 063f 2ab4#############################################
FamilyInf b638 40 22 1878 9 -1 0e87 f0a9########################################
VisibGeom b678 38 1f 1878 9 -1 0d36 c882########################################
NovisGeom b6b0 54 36 1878 9 -1 1755 5e33########################################
ActEntity b704 c0d 503 1878 9 -1 0574 0798######################################
AllFeatur c311 1cdb c88 1878 9 -1 e77a aa84#####################################
BasFullData dfec 40 23 1878 9 -1 0dac f677######################################
FullMData e02c 2c79 1ac7 1878 9 -1 2cbb b24a####################################
NeuPrtSld 10ca5 6cc 34a 1878 9 -1 382b 312c#####################################
NeuAsmSld 11371 3e 20 1878 9 -1 0dc0 d709#######################################
MdlStatus 113af fcc 62e 1878 9 -1 7729 57cb#####################################
PipeInfos 1237b 3e 20 1878 9 -1 0da3 d56e#######################################
Xsections 123b9 50 2c 1878 9 -1 12e0 9aa5#######################################
DwgData 12409 258 17c 1878 9 -1 9a90 1369#######################################
IdsGenInfoDb 12661 553 259 1878 9 -1 09dc e97d##################################
Hatching 12bb4 40 28 1878 9 -1 10d8 4b18########################################
ActDatums 12bf4 433 1c4 1878 9 -1 b843 7c6c#####################################
FeatDefsDtm 13027 bfa 469 1878 9 -1 f3d7 b5ec###################################
NEXT_TOC_ENTRY 19542 6a5 0 1878 1 -1 0000 0000##################################
#ND:0:Model_L05_PX:1
@PSB_Tokens 1 0

分块处理规则

  1. 文件第1到11行为Creo文件的文件头
    起始标识为:#UGC
    结束标识为:#-END_OF_UGC_HEADER
  2. 文件第12行为Creo版本生命
    内容格式为:#Creo TM 4.0 © 2023 by PTC Inc. All Rights Reserved. M060
  3. 从第13行开始到第45行,为文件的分块信息(仅代表上述示例内容)
    每一行代表一个文件块的分块
    以第13行内容示例:
    第13行内容为:
#UGC_TOC 2 32 81 17#############################################################

忽略第一个字符#,取连续的字符(空格分隔)得到UGC_TOC
从输入文件中搜索UGC_TOC,除第13行本身内容可以搜索到以下内容:

在这里插入图片描述
即文件第7813行到7835行,为UGC_TOC块,可将此块提取为单独文件。

根据对多个文件分析得到只有UGC_TOC块会以#END_OF_UGC结尾,其他块并没有此特征,并且UGC_TOC块内部内容可以继续拆分,建议同时将块内内容进行拆分。

以UG_TOC内的ModelView#0为示例,从输入文件中搜索ModelView#0,得到以下内容:

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a7f2020a821d48349c199aed1330ddf1.png

其中6194到6344行为ModelView#0的块,其结束符为下一个块的名称(以#开头)。
其他部分提取规则类似UG_TOC内部块的区分,不再赘述。

结果展示

最终希望得到类型下面的文件分块列表:

在这里插入图片描述

其中源文件名称为不带后缀的文件名,例如输入文件为:prt0001.txt,则源文件名称为prt0001。

说明

若分块名称中出现:字符 ":" ,输出文件名称中以"-"替换 
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值