posts - 27,  comments - 68,  trackbacks - 0

今天收到一封来信:

“我的高级链路做了一部分了,而且所做的部分在做完之后已经及时保存。但是写完文档后关闭TAU G2的时候出现死机,我就强行关闭了TAU G2。以前也经常发生类似的情况,可是重新启动TAU G2是可以打开原来的U2文件的。

         可是这回,我再打开U2文件后出现了错误“Error: TNR0085: XML Parser: no element found (file ://D:\贼魔2\基站项目\LLC\LLC.u2, line 40981).”,和“Information: Session in ::[wpAu0I1UtXILmZZ6zELdUAvL]: TMI0760: Failed to load file D:\贼魔2基站项目\LLC\LLC.”的情况,原来的东西打不开了,而由于我的疏忽没有备份。因为我根本没有想到会出现这种情况。

我高级链路已经做了相当多了,快完成任务了,而且老师催得又特别紧,我无法想象重新返工会是多么可怕的事情。附件已经给您一块发来,不知道您能否把这个东西恢复出来。谢谢您了。我现在非常郁闷。”

 这的确够糟糕的。在此提醒大家一定要每天备份程序,最好使用CVS或SourceSafe工具进行程序管理。

 下面介绍一下我是怎么修复这个文件的,当然完全的修复不可能,因为有一部分内容没有存盘,已经彻底丢失了,但总归希望能找回一些,不要彻底重做。.u2文件实际上是一种XML文件,使用UltraEdit打开就可以看出,大致是这样的格式:

<?xml version="1.0" encoding="UTF-8"?>

<u2 OMVersion="3.0" StorageVersion="4" ToolVersion="2.5.0.0.814" xmlns="http://www.telelogic.com/tau">

<Resource Guid="WSFDyLz3cmLLdPbWvLuSA*VE">

<cHiddenStereotypeInstance>

<InstanceExpr>

……

</cInlineMethod>

</StateMachine>

</cOwnedMember>

</Class>

</cOwnedMember>

</Package>

</u2>

在XML中,大多数Tag都是成对出现的,比如<u2></u2>、<Class></Class>等。被破坏的文件没有了后面的这些行,所以TAU G2打开时会报告错误。本来想在网上找一个自动修复XML的工具,不过还没有找到。找到了一个小工具XmlShell,它可以检查XML文件中是否存在着 Tag不封闭的情况。这个工具很小,不到1M,倒是可以帮助解决问题。首先把.u2文件改名为.xml文件,然后使用XmlShell打开,它会报告有一些Tag没有封闭。将编辑光标移动到文件尾,输入“</”。你每次输入“</”,XmlShell都会帮助你自动封闭Tag,直到出现“</u2>”,所有Tag都封闭了,这时再用XmlShell检查文档,它报告这是一个合法的XML文件了。把文件存盘,然后再改回.u2。这时再使用TAU G2打开文件,TAU G2仍然会报告一些错误,但是这是在Model中已经可以看到一些东西了。至于能找回来多少,要看运气。

 类似的工具还有不少,如XML Spy或XmLBuddy。

这篇文章快要写完的时候收到了回信:
“我刚才看了文件,已经恢复了90%,就差2张图和一些函数定义。我昨天做的东西也有一部分恢复出来了。估计再有半天就可以补齐。如果没有您,我估计重新返工得1个月左右的时间。”

很有成就感。

posted on 2007-04-30 11:22 zealsoft 阅读(912) 评论(0)  编辑 收藏 引用 所属分类: UML

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


欢迎访问我的学术博客

<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(13)

随笔分类(28)

随笔档案(27)

搜索

  •  

积分与排名

  • 积分 - 55566
  • 排名 - 382

最新评论

阅读排行榜

评论排行榜