^%GCHANGEユーティリティは、指定されたグローバル内の条件を満たすものを探し出し、一覧表示したり、一括変更したり、複雑な操作を行ったりするユーティリティです。
User>ZWrite ^A ^A(1)="A" ^A(2)="BB" ^A(3)="日本語のデータ" ^A(4)="データBase" ^A(5)=$LB(1,"Book")
User>Do ^%GCHANGE Output on Device: Right margin: 80 => Global ^A //対象グローバルを指定 (F) Find, (C) Change every, or (X) Execute code: F=> F //Findモード Find every: B //Bを含むグローバルを探す ^A(2)=BB ^A(4)=データBase ^A(5)= Book
Global ^A (F) Find, (C) Change every, or (X) Execute code: F=> F Find every: データ ^A(3)=日本語のデータ ^A(4)=データBase
User>D ^%GCHANGE Output on Device: Right margin: 80 => Global ^A //対象グローバルを指定 (F) Find, (C) Change every, or (X) Execute code: F=> C //Changeモード Change every: B to: C //BをCに変更する ^A(2)=CC //変換した結果が表示されます ^A(4)=データCase ^A(5)= Cook
Global ^A (F) Find, (C) Change every, or (X) Execute code: F=> C Change every: データ to: データー ^A(3)=日本語のデーター ^A(4)=データーCase
User>D ^%GCHANGE Output on Device: Right margin: 80 => Global ^A //対象グローバルを指定 (F) Find, (C) Change every, or (X) Execute code: F=> X //eXecuteモード GREF is the full global reference. GVAL is its value. Do NOT change GREF or %EX! Find every data node with: C //Cを含むグローバルに対して And execute code: Write "GREF:",GREF,!,"GVAL:",GVAL,!! //GREFとGVALを表示してみる GREF:^A(2) GVAL:CC ^A(2)=CC GREF:^A(4) GVAL:データーCase ^A(4)=データーCase GREF:^A(5) GVAL: Cook ^A(5)= Cook
Find every data node with: C And execute code: Kill @GREF // @演算を使って対象をKill ^A(2)=CC ^A(4)=データーCase ^A(5)= Cook Global ^ USER>ZW ^A //Cを含むものが消えていることを確認します ^A(1)="A" ^A(3)="日本語のデーター"