原始文件示例
#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到11行为Creo文件的文件头
起始标识为:#UGC
结束标识为:#-END_OF_UGC_HEADER - 文件第12行为Creo版本生命
内容格式为:#Creo TM 4.0 © 2023 by PTC Inc. All Rights Reserved. M060 - 从第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。
说明
若分块名称中出现:字符 ":" ,输出文件名称中以"-"替换