ほぼ自分用メモ
環境:BizRobo11.4
BizRoboのDSで、各DAロボットのデバイスを一括切り替えたいとき
背景:端末移行で発生する問題
- BizRobo!でロボットを作ると、各ステップにはデバイス(実行端末)が紐付けられる。
- 端末を新しいPCに変えるとき、ロボットファイル(.robot)内のデバイス名を旧端末 → 新端末に書き換える必要がある。
- .robot ファイルをテキストエディタで開くと、こんな記述が複数箇所に出てくる。
xml<property name="deviceName" class="String">XXXXYY</property>
- ステップ数が多いロボットだと、この記述が多数散在していることもある。手動で1件ずつ変更するのは現実的ではない。
だが
端末変更時に deviceName を書き換えたくても、Windowsメモ帳で編集・保存すると読み込み不可になる
解決した方法
- BizRobo!の .robot ファイルは XML形式
- Notepad++ で「一括置換」すれば安全に書き換え可能
なぜ壊れるのか(Claudeより)
.robot ファイルは XML 1.0 形式で、先頭行にエンコーディング宣言がある。
ところが、Windows メモ帳は UTF-8 ファイルを保存するとき、先頭に BOM(Byte Order Mark)を自動で付加する。
状態ファイル先頭のバイト列正常(BOMなし)3C 3F 78 6D 6C ... = <?xml ...
メモ帳保存後(BOMあり)EF BB BF 3C 3F 78 6D 6C ... = ???<?xml ...
XML の仕様では「ドキュメントは <?xml から始まらなければならない」となっている。
BOM(3バイト)が先頭に入ると、BizRobo!の XML パーサーがこれを不正なファイルと判定して読み込みを拒否する。
メモ帳のBOM付加は「親切のつもり」だが、XMLにとっては先頭への落書きになる。
とのこと