今天收到一封来信:

“我的高级链路做了一部分了,而且所做的部分在做完之后已经及时保存。但是写完文档后关闭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个月左右的时间。”

很有成就感。

转载于:https://www.cnblogs.com/zealsoft/archive/2007/04/30/733183.html

如何修复修复损坏的TAU G2的.u2文件相关推荐

  1. 正在更新office_Windows 9月10日累积更新:已修复和损坏的问题

    随着Windows 10的发布,Microsoft重新设计了Windows Update计划,以及如何更新设备.在第二个星期二,将发布新的累积更新,作为"星期二补丁"版本的一部分, ...

  2. usb 驱动修复_您可以修复物理损坏的USB驱动器吗?

    usb 驱动修复 Sometimes accidents happen to a USB drive, and you find yourself in a very bad position whe ...

  3. 如何在Oracle中检测和修复块损坏

    在本文中,我们将看到数据文件上存在块损坏时如何修复块损坏. 如果索引上存在"块损坏",则可以通过删除并重新创建索引来解决问题. 在某些情况下,块损坏也可以出现在空闲页面上. 检测损 ...

  4. 修复固件损坏的RT-ICG2000-AC-CTC路由器(H3C生产)

    修复固件损坏的RT-ICG2000-AC-CTC路由器(H3C生产) 故障现象:曾经被雷击中,用Firefox浏览器登录路由器的管理界面后,显示的页面非常混乱,无法正常操作. 机器型号图片: 修复方法 ...

  5. mov视频损坏怎么修复?修复秘诀

    mov是一种音频.视频文件格式,这个格式通常用于拍摄和导出.由于拥有不错的视频质量.数据流转快.非常适合视频的剪辑创作,但有时在我们需要使用到视频时,遇到了视频被损坏了,这时多么让人破溃的事啊,本来视 ...

  6. oracle dbms_repair,oracle实验-使用dbms_repair修复块损坏

    使用dbms_repair修复块损坏的例子 dbms_repair是从oracle8i开始提供的. 我们可以用设置event的方法来处理坏块: 但是当数据量很大,或7*24的系统时,这样的方法就不是很 ...

  7. Hdfs系列之:查看hdfs文件状态,判断文件是否损坏,修复hdfs损坏文件

    Hdfs系列之:查看hdfs文件状态,判断文件是否损坏,修复hdfs损坏文件 一.查看Hdfs文件状态 二.参数详解 三.修复hdfs损坏文件 一.查看Hdfs文件状态 命令格式为: hdfs fsc ...

  8. win10修复tcp驱动服务器,怎么解决tcpip.sys文件导致蓝屏|Win10的tcpip修复工具

    由tcpip.sys文件引起的蓝屏错误,错误代码为:0x000000D1,表示硬件设备的驱动程序遇到了问题.引起错误的文件是tcpip.sys,那么应该是与网卡驱动有关.这篇文章是PE吧给大家带来的解 ...

  9. win10如何修复蓝牙服务器,修复win10系统下蓝牙无法正常传输文件的解决方法

    一般win10系统都内置蓝牙功能,它可以连接各种无线设备,或者传输文件之类的功能.最近有一些小伙伴使用win10操作系统的时候遇到了一个问题,就是偶尔无法利用蓝牙正常传输文件,这让用户感到很头疼.于是 ...

最新文章

  1. Linux块设备驱动总结
  2. Flash 与 Js 相互调用
  3. cmd使用另一个Oracle的sid,(转发备用)Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法...
  4. linux编译cpp文件命令,Jsoncpp Linux 下编译为 .a 文件
  5. 电脑固态硬盘接口辨析
  6. JS--我发现,原来你是这样的JS:面向对象编程OOP[3]--(JS继承)
  7. mysql cluster error 4010 157_关于mysql-cluster的一些问题想讨教各位经验人事
  8. SVN客户端和中文包的安装
  9. Vue源码分析系列:目录
  10. 重签名ipa步骤及工具
  11. OSChina 周二乱弹 —— 对!公交车绝缘体
  12. Failed to transform file 'xxx' to match attributes 的解决办法
  13. php让手机全屏,手机网站按比例显示铺满手机全屏/网站两边不留白
  14. 王阳明心学:此心光明,夫复何言
  15. solr dih有子查询时速度慢
  16. iOS二维码生成、识别、扫描等
  17. 电商类微信平台推广方法有哪些?
  18. JavaScript 函数 Call的使用
  19. 电机控制书籍复习--高性能变频调速及其典型控制系统-马小亮
  20. Python中的 ctypes 的用法(byref)

热门文章

  1. bitmap xml大小 安卓_一张壁纸让安卓用户手机系统崩溃,包括三星、小米、一加等...
  2. YY/T 0664—2020《医疗器械软件 软件生存周期过程》 相关
  3. stocker模块量化交易分析
  4. linux服务器不能访问,无法在远程Linux服务器上访问tomcat
  5. 3 float py 位小数 裁剪_对一个 float 精度问题的分析
  6. git 与github 命令行操作与控制
  7. erlang(21)-列表推导与计算素数与合数
  8. 开心一刻,你和导师之间有什么有趣的事情?
  9. 复现经典:《统计学习方法》第22章 无监督学习方法总结
  10. 沟通无国界,云信助力译牛构建远程会议同传新模式