V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wangyuescr
V2EX  ›  问与答

排障记录,科研绘图 ChemDraw 软件 注释没删除导致复制粘贴一次结构内存占用异常

  •  
  •   wangyuescr · 161 天前 · 498 次点击
    这是一个创建于 161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    排障记录,科研绘图 ChemDraw 软件 注释没删除导致复制粘贴一次结构内存占用异常

    背景

    某天开始某部门的绝大部分用户反馈 ChemDraw 16 [ Win10 22H2 Pro 、Office 365 、8/16G 内存、固态硬盘] 以上版本编辑文件没几次就闪退,现象是复制粘贴一次简单的结构内存占用会增加 100 MB 左右(正常情况下同样结构就算你复制粘贴 30 - 50 次,内存占用不会超过 1 G ),32 位的 ChemDraw 内存占用到 1.5 G 左右直接闪退; 64 位会好些,占用 10 G 多才会闪退。所以在排除了 Win10 补丁问题后,我们打算让用户临时用 ChemDraw 64 位版本。

    为什么一开始不安装 64 位版本?

    ChemDraw 安装的时候会根据 Office 是 32 位还是 64 位来决定是安装 32 位还是 64 位,当然可以手动选,但是好像 22 之前的版本安装过程中 32 位和 64 位只能二选一。

    可以理解成有一种编程语言,IDE 打开默认不显示注释,就算你 Ctrl + A 全选删除然后重新写,注释还在。甚至你复制代码片段到新建的源文件里,旧文件里所有的注释会跟着一块过去,更有可能你复制粘贴部分代码片段,部分或者整个注释也会跟着复制粘贴一份,所以内存占用才这么离谱。 但你在写各种报的时候又需要根据情况反复编辑,频繁闪退就很耽误工作。

    GIF 32 位 ChemDraw 复制粘贴个简单结构内存增加异常,占用到 1.5 G 卡死

    图片 64 位 ChemDraw 复制粘贴个简单结构内存增加异常

    联系软件厂家支持

    同样的文件在软件厂家支持电脑没法复现故障,最终是对方以记事本打开发现有成百上千个注释。

    猜测是客户提供的某个源文件带有注释,用户编辑的时候只动了显示的结构,没注意注释,导致后续用这个文件的也跟着把注释带进去了。有个比较离谱的事情是,打开有注释的文件,复制结构到另一个新建的 Document ,注释会跟着一块过去。比较麻烦的是,用户没有人知道怎么批量删除注释,查不到。

    先让用户联系客户以后发过来的源文件不要有注释。

    图片 记事本打开.cdxml 搜索注释并计数

    尝试的解决办法

    问问 Chat GPT 3.5 ,

    如果你想一次性删除 ChemDraw 注释中所有的关键字,而不必逐个删除,你可以考虑使用一些文本编辑工具或编程脚本来实现这个目标。以下是一个使用文本编辑器的通用方法:

    1. 打开 .cdxml 文件:
      • 使用文本编辑器(例如 Notepad++、Sublime Text 、VS Code 等)打开 ChemDraw 的 .cdxml 文件。
    2. 使用查找和替换功能:
      • 使用文本编辑器的查找和替换功能,查找包含关键字的注释部分,并将其替换为空字符串。这样就可以一> 次性删除所有关键字。
    3. 注意文件结构:
      • 在进行替换操作时,请确保不要破坏 .cdxml 文件的结构。这可能需要你了解 .cdxml 文件的基本结> > 构,以便安全地进行替换。 请注意,这种方法可能会因 .cdxml 文件的具体结构而有所不同,因此在进行替换之前,请备份你的文件以防> > 万一。 如果你熟悉编程,你还可以使用脚本语言(如 Python )来处理 .cdxml 文件。这需要对 .cdxml 文件格式有> 一定的了解,以确保你不会意外破坏文件结构。

    最终想到了这个办法,记事本或者写字板打开.cdxml 文件,全选复制到 word ,使用通配符查找 [<]<(annotation)>*[/][>] 查找 <符号开头然后是 annotation 开头的 任意内容 以 />结尾的 替换为空。

    我们还在期待软件厂商能够提供一个相对简洁的办法让用户能够自行在 ChemDraw 里面操作批量删除注释!

    图片 Word 通配符 查找

    图片 Word 通配符 替换

    博客园 Word 查找和替换通配符(完全版)

    一线前端 IT 支持工作或者说带有服务性质的工作只会越来越不好干。非常容易遇到这种撒币制杖的情况 [还得在现场背锅,直面用户的不满、怨气,还得安抚。] ,行业相关的特定软件/场景有问题,复现故障后排障非常难。 还是常规的计算机相关工作好,参考资料多,更容易触类旁通。 一开始我们压根没有想到会是客户提供的文件有问题。

    所以学计算机,不想编程、不会编程、学不会编程,还做相关 IT 相关工作以后会越来越难?

    即将毕业该怎么办? 好迷茫

    分享 一个生物实验汪的编程学习经历和开源项目总结

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2851 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 00:27 · PVG 08:27 · LAX 17:27 · JFK 20:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.