|
>あ、こういうお願いって、有りですか?なしですか?
// マクロの恩は 秀丸フォーラムで返すとよいでしょう
// 情報の共有です
// decimal2.mac
// 一桁の10進全加算器を 繰り返し使用する
// NCやってるのなら 回路の演習もできるはずだが
// X- 1個分の処理 です 末尾の桁に0が残るが始末はそちらでやって
//
searchdown "X-";right 2; #x=x;#y=y; // 頭出し 位置を記憶
searchdown "[^.0-9]",regular; // 非数値文字を検索
$float=gettext(#x,#y,x,y); // 数値取得
beginsel moveto #x,#y; delete
#count=strlen($float); // 文字数(バイト数)
#carry=0; $double=""; // 桁上げ、演算結果
while( #count >0){
$char =rightstr($float,1); // LSD 最下位桁
$float= leftstr($float,strlen($float)-1); // 一桁右シフト
#count=#count -1;
if($char=="."){ $double=$char+$double; continue } // . は通り抜け
#d=val($char)*2+#carry; // 1桁加算
if(#d >9){ #carry=1; #d=#d-10;}
else #carry=0;
$double=str(#d)+$double; // 一桁追加
}
if(#carry >0) $double="1"+$double; // 最後の桁上がり
insert $double; // 結果挿入
endmacro
// G01Z0 in ソース テストデータ
// X-.505 ↓
// X-1.010
// Z-.053
// G03X-.584Z-.151R.1
// G02X-1.717Z-.677R2.8
// G01X-2.095Z-1.05
// G03X-2.2Z-1.093R.15
// G01Z-7.038
// X-3.Z-7.5
// Z-26.
// X-5.
// Z-30.
// X-10.
//
|
|