# -*- coding: utf-8 -*- """修 paste_optimize.py 中图号行触发器的锚点(适配现签名),并加开关条件。""" import io p = r"C:\Users\099978\Documents\SharpDevelop Projects\成套报价软件\tools\paste_optimize.py" s = io.open(p, encoding="utf-8").read() old = ( '\' "_u AFTER UPDATE OF \\\\"" + 图号输入列[0] + "\\\\"" ON \\\\"" + 图号表名 + "\\\\"" FOR EACH ROW WHEN NEW.\\\\\"内部ID\\\\\"=\'" +\n' "\t\t\t\t图号ID.Replace(\"'\", \"''\") + \"' BEGIN UPDATE \\\\\"\" + 图号表名 + \"\\\\\" SET \" + thSetNew +" ) # 直接用朴素文本定位(避免转义嵌套):找 'BEGIN UPDATE' 紧邻 thSetNew 的那一行对 lines = s.split("\n") done = False for i, l in enumerate(lines): if "FOR EACH ROW WHEN NEW." in l and "图号输入列[0]" in l and i + 2 < len(lines): if "' BEGIN UPDATE" in lines[i + 2] and "thSetNew" in lines[i + 2]: lines[i + 2] = lines[i + 2].replace("' BEGIN UPDATE", "' AND \" + 开关条件 + \" BEGIN UPDATE", 1) done = True print("锚点行已改:", lines[i + 2].strip()[:80]) break if done: io.open(p, "w", encoding="utf-8").write("\n".join(lines)) print("done", done)