過去ログ

                                Page     619
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼文字の小数点を丸めたい  Ibuki 17/5/31(水) 10:01
   ┣Re:文字の小数点を丸めたい  柳 絮 17/5/31(水) 10:32
   ┃  ┗わかりづらいかもですので修正します  柳 絮 17/6/1(木) 8:22
   ┃     ┗Re:わかりづらいかもですので修正します  Ibuki 17/6/1(木) 13:27
   ┃        ┗あは、そうでしたか!  柳 絮 17/6/1(木) 15:30
   ┣Re:文字の小数点を丸めたい  R.N 17/5/31(水) 21:22
   ┃  ┗Re:文字の小数点を丸めたい  Ibuki 17/6/1(木) 13:39
   ┃     ┣Re:文字の小数点を丸めたい  R.N 17/6/1(木) 15:49
   ┃     ┃  ┣Re:文字の小数点を丸めたい  柳 絮 17/6/1(木) 19:24
   ┃     ┃  ┃  ┗Re:文字の小数点を丸めたい  Ibuki 17/6/3(土) 20:23
   ┃     ┃  ┗Re:文字の小数点を丸めたい  Ibuki 17/6/3(土) 20:15
   ┃     ┗Re:文字の小数点を丸めたい  いっち 17/6/1(木) 20:21
   ┃        ┣Re:文字の小数点を丸めたい  R.N 17/6/1(木) 21:38
   ┃        ┃  ┣Re:文字の小数点を丸めたい  いっち 17/6/1(木) 22:54
   ┃        ┃  ┃  ┗Re:文字の小数点を丸めたい  いっち 17/6/2(金) 0:20
   ┃        ┃  ┃     ┗Re:文字の小数点を丸めたい  柳 絮 17/6/2(金) 7:30
   ┃        ┃  ┃        ┗もうひとつの外部変形  いっち 17/6/2(金) 9:28
   ┃        ┃  ┃           ┗Re:もうひとつの外部変形  マチャプチャレ 17/6/3(土) 14:11
   ┃        ┃  ┃              ┗Re:もうひとつの外部変形  いっち 17/6/3(土) 17:03
   ┃        ┃  ┗Re:文字の小数点を丸めたい  いっち 17/6/2(金) 17:50
   ┃        ┃     ┗Re:文字の小数点を丸めたい  R.N 17/6/2(金) 19:21
   ┃        ┗Re:文字の小数点を丸めたい  Ibuki 17/6/3(土) 20:39
   ┗Re:文字の小数点を丸めたい  O.M 17/6/11(日) 6:30

 ───────────────────────────────────────
 ■題名 : 文字の小数点を丸めたい
 ■名前 : Ibuki
 ■日付 : 17/5/31(水) 10:01
 -------------------------------------------------------------------------
   お世話になります。
DXFで図面を受け取ったり変換したデータで
文字の小数点が*.*****と小数点第5位くらいになっている
ことがよくあります。
気にしなければいいのですがこちらを小数点第1位に
一括で丸める作業をする時になにかいい方法はないでしょうか。
もしあればお教えください。宜しくお願い致します。

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : 柳 絮  ■日付 : 17/5/31(水) 10:32  -------------------------------------------------------------------------
   ▼Ibukiさん:

>小数点第1位に一括で丸める作業をする時になにかいい方法は・・・

文字全体を選択(線があってもかまいません)
選択出来たら「文字」(左AM0時)
外部エディッタを選択
エディッタ画面の文字を全て選択して「コピー」
エクセルを立ち上げて空白セルに「貼り付け」
貼り付いたセルを選択して、「セルの書式設定」で
小数点第1位になるように表示を変えます。
そうすれば
1.000001 → 1.0
1.09 → 1.1 で表示されます。
もう一度貼り付いたセルを全部選択して「コピー」
エディッタに戻って上書きで「貼り付け」
エディッタを上書き保存して終了。

この作業で希望する形になると思いますが?。

上手くいくと良いですね。

 ───────────────────────────────────────  ■題名 : わかりづらいかもですので修正します  ■名前 : 柳 絮  ■日付 : 17/6/1(木) 8:22  -------------------------------------------------------------------------
    意味が解りづらい文言がありましたので、
すみませんが加筆修正します。


「範囲」から、修正をしたい文字全体を選択 
(線があっても、修正しない文字があってもかまいません)
選択出来たら「文字」(左AM0時)を選択して
バー右の外部エディッタを起動(通常はノートパッド)
エディッタ画面のには、範囲選択した中の文字だけ表示されます(よね?)
それらを全て選択して「コピー」

 例です
**************************************************************
1.000001
1.09 
いろはにほへと
2.111
**************************************************************
 だったとします

エクセルを立ち上げて空白セルに「貼り付け」
貼り付いたセル全部を選択、「セルの書式設定」で
小数点第1位になるように表示を変えます。
そうすれば
**************************************************************
1.000001
1.09
いろはにほへと
2.111
 
    だったのが

1.0
1.1 
いろはにほへと 
2.1
と表示がかわります(よね?)
**************************************************************
 
作業を行ったセル全て(ここ重要)を選択して「コピー」

エディッタに戻って、エディッタ画面全部を選択して
「貼り付け」(上書き作業)ますと、
画面内容が
**************************************************************
1.0
1.1
いろはにほへと 
2.1
**************************************************************
に変わりますので、
「上書き保存」
エディッタ「終了」 

 ※ここで行数が変わってしまっていると
  悲惨な結果になりますので注意して下さい。

エクセルを保存せず「終了」

作業をしていたjwの文字は「差し変わった」状態になります。

如何でしょうか?。

 ───────────────────────────────────────  ■題名 : Re:わかりづらいかもですので修正します  ■名前 : Ibuki  ■日付 : 17/6/1(木) 13:27  -------------------------------------------------------------------------
   ▼柳 絮さん:

詳しい解説ありがとうございます。
私の質問文がややこしくて申し訳ありません。
『文字種』の小数点が小数点第5位くらいになっているものを
小数点第1位に一括で丸める と書かなければなりませんでした。
ただ、文字数値を丸める方法で書いていただいた方法は
初めて知りました。手順通りに試したところ楽にでき、すごく勉強になりました。ありがとうございました。

 ───────────────────────────────────────  ■題名 : あは、そうでしたか!  ■名前 : 柳 絮  ■日付 : 17/6/1(木) 15:30  -------------------------------------------------------------------------
   ▼Ibukiさん:

>『文字種』の小数点が小数点第5位くらいになっているもの

自由文字のサイズが小数点以下5くらいあるのを直したかった
のですね。合点がいきました。


やり方はあるのですが今は説明できませんので後ほど。

では

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : R.N  ■日付 : 17/5/31(水) 21:22  -------------------------------------------------------------------------
   ▼Ibukiさん:
>お世話になります。
>DXFで図面を受け取ったり変換したデータで
>文字の小数点が*.*****と小数点第5位くらいになっている
>ことがよくあります。
>気にしなければいいのですがこちらを小数点第1位に
>一括で丸める作業をする時になにかいい方法はないでしょうか。
>もしあればお教えください。宜しくお願い致します。

外部変形でしたら、

Cabaさん作の「小道具」の中に、「数値丸め」があります。

Fu〜さんのHPの、21:外部変形の紹介 のページに置いて頂いてます、参照ください。
http://fu-s.wakwak.info/jww/
(AWKのダウンロード・設定が必要です)
http://www.jwdojo.com/menu/0202.html

Fu〜さん、Cabaさん、ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : Ibuki  ■日付 : 17/6/1(木) 13:39  -------------------------------------------------------------------------
   ▼R.Nさん:

外部変形を紹介いただきありがとうございます。
私の質問文がおかしく誤解を与えてしまい申し訳ありません。
『文字種』の小数点が小数点第5位くらいになっているものを
小数点第1位に一括で丸める と書かなければなりませんでした。
小道具の中の文字種シフトや文字種分類はとても要望に近いです。
他のものも痒い所に手が届く便利なものでこれから使用させていただきます。
外部変形の作者様、掲載者様、R.N様 ありがとうございました。

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : R.N  ■日付 : 17/6/1(木) 15:49  -------------------------------------------------------------------------
   ▼Ibukiさん:こんにちは、

>外部変形を紹介いただきありがとうございます。
>私の質問文がおかしく誤解を与えてしまい申し訳ありません。
>『文字種』の小数点が小数点第5位くらいになっているものを
>小数点第1位に一括で丸める と書かなければなりませんでした。
>小道具の中の文字種シフトや文字種分類はとても要望に近いです。
>他のものも痒い所に手が届く便利なものでこれから使用させていただきます。
>外部変形の作者様、掲載者様、R.N様 ありがとうございました。

解釈が違ったようで、すみません。

言われるとおり、

1.文字種分類
(任意サイズ文字を文字種1〜10(近いサイズ)に分類します)
2.文字種を指定量だけシフト
(任意サイズ文字も強制変更されます)
2-2.文字種統一
(文字色別にシフト)

が、使えそうですね。
(文字基点・cfgファイルの設定にも注意してください)

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : 柳 絮  ■日付 : 17/6/1(木) 19:24  -------------------------------------------------------------------------
   ▼R.Nさん:
尻からすみません
文章を考えていたら遅くなった(笑)

せっかく作ったから投稿します。

作業の手順としますと
1.「設定」→「基本設定」→「文字」を辿って
  表を確認して下さい。
  文字種1〜10の設定数字が歯切れの良い(丸まった)数値でしょうか?
  DXFデータからの文字が全部「任意サイズ」でしたら →3項へ

2.作図画面の文字の大きさ傾向をざっくりつかんでおいて下さい。  
  ( 2.79999 × 2.79999 とか 3.85555 × 3.85555 だな〜 で良いです)
  で、
  3.0 × 3.0 とか 4.0 × 4.0 にしたい 
  2.8 × 2.8 や 3.9 ×3.9 でもいいのかどうかは
  貴方が決めて下さい。

3.任意サイズでは無いけど文字種1〜10の設定値が
  2項で計画した数値から外れている場合は、
  □既に作図されている文字のサイズも変更するのチェックを外して、
  「横」「縦」「間隔」「色No」を気に入った数値に変更して「OK」
  大きさが該当していない文字は全て「任意サイズ」へ変更されます。
  数は横に表示をされますので参考に。

4.慣れない内は、いっぺんにやらない方が良いですので、
  レイヤ毎に作業をするのが解り易いです(時間がかかりますけど)

5.「範囲」で選択をして下さい(線・文字一括)
  <属性選択>→(文字種類指定)→任意サイズだけをチェック
  「幅」又は「高さ」にチェック
  幅にチェックを入れたとします、その横にサイズを指定出来る様になります。
  例>
  2.79999 × 2.79999 の文字を選び出したい場合は
  2.8 ± 0.1 (ぐらいかな?)に入力をして「OK」→「OK」
  そうすれば 2.8±0.1 の文字が選択されています。

6.「属性変更」→ □書込【文字種類】に変更 にチェック
  上記3項で設定をした文字種を選択して「OK」→「OK」
  この作業で指定をした文字種に変更をされています。

7.後は応用をして延々と作業です。

変更したことが解り安くするには「色No」を分かり易い色にしておくば良いかと。

うる覚えですけど、外部変形でこれが出来るのがあったような・・・


R.Nさんが申されました以下と同じです。
>
>1.文字種分類
>(任意サイズ文字を文字種1〜10(近いサイズ)に分類します)
>2.文字種を指定量だけシフト
>(任意サイズ文字も強制変更されます)
>2-2.文字種統一
>(文字色別にシフト)
>
>が、使えそうですね。
>(文字基点・cfgファイルの設定にも注意してください)

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : Ibuki  ■日付 : 17/6/3(土) 20:23  -------------------------------------------------------------------------
   ▼柳 絮さん:
こんばんは。お世話になっております。
±の部分がミソですね。
私が扱う図面は結構パターンが決まっているのでサクサクとできました。
標準機能、外部変形といろんな方法があって
まだまだ知らない事が多いなと感じました。
詳しく丁寧に解説いただきありがとうございました。


>▼R.Nさん:
>尻からすみません
>文章を考えていたら遅くなった(笑)
>
>せっかく作ったから投稿します。
>
>作業の手順としますと
>1.「設定」→「基本設定」→「文字」を辿って
>  表を確認して下さい。
>  文字種1〜10の設定数字が歯切れの良い(丸まった)数値でしょうか?
>  DXFデータからの文字が全部「任意サイズ」でしたら →3項へ
>
>2.作図画面の文字の大きさ傾向をざっくりつかんでおいて下さい。  
>  ( 2.79999 × 2.79999 とか 3.85555 × 3.85555 だな〜 で良いです)
>  で、
>  3.0 × 3.0 とか 4.0 × 4.0 にしたい 
>  2.8 × 2.8 や 3.9 ×3.9 でもいいのかどうかは
>  貴方が決めて下さい。
>
>3.任意サイズでは無いけど文字種1〜10の設定値が
>  2項で計画した数値から外れている場合は、
>  □既に作図されている文字のサイズも変更するのチェックを外して、
>  「横」「縦」「間隔」「色No」を気に入った数値に変更して「OK」
>  大きさが該当していない文字は全て「任意サイズ」へ変更されます。
>  数は横に表示をされますので参考に。
>
>4.慣れない内は、いっぺんにやらない方が良いですので、
>  レイヤ毎に作業をするのが解り易いです(時間がかかりますけど)
>
>5.「範囲」で選択をして下さい(線・文字一括)
>  <属性選択>→(文字種類指定)→任意サイズだけをチェック
>  「幅」又は「高さ」にチェック
>  幅にチェックを入れたとします、その横にサイズを指定出来る様になります。
>  例>
>  2.79999 × 2.79999 の文字を選び出したい場合は
>  2.8 ± 0.1 (ぐらいかな?)に入力をして「OK」→「OK」
>  そうすれば 2.8±0.1 の文字が選択されています。
>
>6.「属性変更」→ □書込【文字種類】に変更 にチェック
>  上記3項で設定をした文字種を選択して「OK」→「OK」
>  この作業で指定をした文字種に変更をされています。
>
>7.後は応用をして延々と作業です。
>
>変更したことが解り安くするには「色No」を分かり易い色にしておくば良いかと。
>
>うる覚えですけど、外部変形でこれが出来るのがあったような・・・
>
>
>R.Nさんが申されました以下と同じです。
>>
>>1.文字種分類
>>(任意サイズ文字を文字種1〜10(近いサイズ)に分類します)
>>2.文字種を指定量だけシフト
>>(任意サイズ文字も強制変更されます)
>>2-2.文字種統一
>>(文字色別にシフト)
>>
>>が、使えそうですね。
>>(文字基点・cfgファイルの設定にも注意してください)

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : Ibuki  ■日付 : 17/6/3(土) 20:15  -------------------------------------------------------------------------
   ▼R.Nさん:
こんばんは。お世話になっております。
こちらこそお手数をおかけして申し訳ございません。
本当に色々な方法で対応できるんだなと感心しました。
よくDXF変換図面や縮小図面を扱うので
大変うれしいです。自分なりの設定を見つけて作業したいと思います。
ありがとうございました。


>▼Ibukiさん:こんにちは、
>
>>外部変形を紹介いただきありがとうございます。
>>私の質問文がおかしく誤解を与えてしまい申し訳ありません。
>>『文字種』の小数点が小数点第5位くらいになっているものを
>>小数点第1位に一括で丸める と書かなければなりませんでした。
>>小道具の中の文字種シフトや文字種分類はとても要望に近いです。
>>他のものも痒い所に手が届く便利なものでこれから使用させていただきます。
>>外部変形の作者様、掲載者様、R.N様 ありがとうございました。
>
>解釈が違ったようで、すみません。
>
>言われるとおり、
>
>1.文字種分類
>(任意サイズ文字を文字種1〜10(近いサイズ)に分類します)
>2.文字種を指定量だけシフト
>(任意サイズ文字も強制変更されます)
>2-2.文字種統一
>(文字色別にシフト)
>
>が、使えそうですね。
>(文字基点・cfgファイルの設定にも注意してください)

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : いっち  ■日付 : 17/6/1(木) 20:21  -------------------------------------------------------------------------
   ▼Ibukiさん:
>▼R.Nさん:
> 『文字種』の小数点が小数点第5位くらいになっているものを
> 小数点第1位に一括で丸める と書かなければなりませんでした。
それだけでしたら、私が自分用に以前作ったものを、
それ用にしてみましたけれど、こんな感じですか?

久しぶりに作ったので、
http://sky.geocities.jp/lite_and_seen_lite/
さまのページを、読み返しました。

文字の小数点を丸める.bat
この下から↓

@if(0==1) // 文字の小数点を丸める
@echo off
REM #jww
REM #cd
REM #h3
REM #hc文字を選択してください
REM #g0
REM #zz
REM #bz
REM #e
cscript //nologo //e:jscript %0
rem pause
goto:eof
@end
function myround(cn) {
var temp = cn.split(/\s+/);
for (var i = 1; i < temp.length - 1; i++) {
temp[i] = Math.round(parseFloat(temp[i]) * 10) / 10;
}
return temp.join(" ");
}
with (new ActiveXObject("Scripting.FileSystemObject")) {
g = CreateTextFile("myfiles")
f = OpenTextFile("jwc_temp.txt")
while (!f.AtEndOfLine) {
line = f.ReadLine()
if (/^cn0/ .test(line)) {
g.WriteLine(myround(line))
} else {
if (/^hq/ .test(line)) {
g.WriteLine("hd")
} else {
g.WriteLine(line)
}
}
}
f.Close();
g.Close();
CopyFile("myfiles", "jwc_temp.txt")
DeleteFile("myfiles")
}

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : R.N  ■日付 : 17/6/1(木) 21:38  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

スレ主さんの要望は、いっちさんのスクリプト動作---かもですね。
ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : いっち  ■日付 : 17/6/1(木) 22:54  -------------------------------------------------------------------------
   ▼R.Nさん:

R.Nさん、こんばんは。

> スレ主さんの要望は、
ちょっと分かりませんが、少数1位にした後、色も含めて文字種と一致したら、
それに代えた方がいいかなって気がします。
もう少し、弄っていました。
バグあったら、ごめんなさい。

@if(0==1) // 文字の小数点を丸める
@echo off
REM #jww
REM #cd
REM #h3
REM #hc文字を選択してください
REM #g0
REM #zz
REM #bz
REM #e
cscript //nologo //e:jscript %0
rem pause
goto:eof
@end
function myround(cn) {
var temp = cn.split(/\s+/);
for (var i = 1; i < temp.length - 1; i++) {
temp[i] = Math.round(parseFloat(temp[i]) * 10) / 10;
}
return temp.join(" ");
}
blnflg = false;
with (new ActiveXObject("Scripting.FileSystemObject")) {
g = CreateTextFile("myfiles");
f = OpenTextFile("jwc_temp.txt");
while (!f.AtEndOfLine) {
line = f.ReadLine();
if (blnflg) {
if (/^cn0/ .test(line)) {
myss = (myround(line));
for (var j = 0; j < dic.Count; j++) {
if (strItems[j] == myss) {
myss = strKeys[j];
break;
}
}
g.WriteLine(myss);
} else {
g.WriteLine(line);
}
} else {
if (/^hq/ .test(line)) {
g.WriteLine("hd");
} else {
g.WriteLine(line);
}
if (/^hcw/i.test(line)) {
hcw = line.split(/\s+/).slice(1, 11);
} else if (/^hch/i.test(line)) {
hch = line.split(/\s+/).slice(1, 11);
} else if (/^hcd/i.test(line)) {
hcd = line.split(/\s+/).slice(1, 11);
} else if (/^hcc/i.test(line)) {
hcc = line.split(/\s+/).slice(1, 11);
} else if (/^bz/i.test(line)) {
dic = new ActiveXObject("Scripting.Dictionary");
for (i = 0; i < hcw.length; i++) {
dic("cn" + (i + 1)) =
"cn0 " + hcw[i] + " " + hch[i] + " " + hcd[i] + " " + hcc[i];
}
strVBKeys = new VBArray(dic.Keys());
strVBItems = new VBArray(dic.Items());
strKeys = strVBKeys.toArray();
strItems = strVBItems.toArray();
blnflg = true;
}
}
}
f.Close();
g.Close();
CopyFile("myfiles", "jwc_temp.txt")
DeleteFile("myfiles")
}

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : いっち  ■日付 : 17/6/2(金) 0:20  -------------------------------------------------------------------------
   ▼いっちさん:

> バグあったら、ごめんなさい。
現在の文字種が任意文字種の場合に、調整しないバグがありましたので、今一度投稿いたします。
※現在の文字種が記載されるのは、bzより前であり、hccよりは後である事に気が付きました。

文字の小数点を丸める.bat
この下から↓

@if(0==1) // 文字の小数点を丸める
@echo off
REM #jww
REM #cd
REM #h3
REM #hc文字を選択してください
REM #g0
REM #zz
REM #bz
REM #e
cscript //nologo //e:jscript %0
rem pause
goto:eof
@end
function myround(cn) {
var temp = cn.split(/\s+/);
for (var i = 1; i < temp.length - 1; i++) {
temp[i] = Math.round(parseFloat(temp[i]) * 10) / 10;
}
return temp.join(" ");
}
blnflg = false;
with (new ActiveXObject("Scripting.FileSystemObject")) {
g = CreateTextFile("myfiles");
f = OpenTextFile("jwc_temp.txt");
while (!f.AtEndOfLine) {
line = f.ReadLine();
if (blnflg) {
if (/^cn0/ .test(line)) {
myss = (myround(line));
for (var j = 0; j < dic.Count; j++) {
if (strItems[j] == myss) {
myss = strKeys[j];
break;
}
}
g.WriteLine(myss);
} else {
g.WriteLine(line);
}
} else {
if (/^hq/ .test(line)) {
g.WriteLine("hd");
} else if (/^hcw/i.test(line)) {
hcw = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
} else if (/^hch/i.test(line)) {
hch = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
} else if (/^hcd/i.test(line)) {
hcd = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
} else if (/^hcc/i.test(line)) {
hcc = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
dic = new ActiveXObject("Scripting.Dictionary");
for (i = 0; i < hcw.length; i++) {
dic("cn" + (i + 1)) =
"cn0 " + hcw[i] + " " + hch[i] + " " + hcd[i] + " " + hcc[i];
}
strVBKeys = new VBArray(dic.Keys());
strVBItems = new VBArray(dic.Items());
strKeys = strVBKeys.toArray();
strItems = strVBItems.toArray();
blnflg = true;
} else {
g.WriteLine(line);
}
}
}
f.Close();
g.Close();
CopyFile("myfiles", "jwc_temp.txt")
DeleteFile("myfiles")
}

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : 柳 絮  ■日付 : 17/6/2(金) 7:30  -------------------------------------------------------------------------
   ▼いっちさん:
初めまして

動作確認をしました。

これは重宝しそうです、感謝いたします。
ありがとうございました。

外部変形は偉大ですね。

 ───────────────────────────────────────  ■題名 : もうひとつの外部変形  ■名前 : いっち  ■日付 : 17/6/2(金) 9:28  -------------------------------------------------------------------------
   ▼柳 絮さん:
はじめまして

動作確認ありがとうございます。
今回の「外部変形」を気に入って頂けた方なら、もしかしたら下記の外部変形も気に入ってもらえるかもしれないと思い、この掲示板に貼らせて頂きます。

「文字種毎の使用文字数を数える」外部変形です。
Jw_cadでは、任意サイズの使用文字数は一括ですが、この外変では個別に数量を表示します。

表示された画面は、Exit Script のボタンを押すと終了します。
この画面を自分は気に入っていて、その為に、AutoItで作っています。

下記の「取り出し.bat」を実行すると、「strcount.zip」が出来ます。
外部変形はその中に入っています。

下記の「取り出し.batを作る為のrubyスクリプト」は、「sugiさん」が提示してくれたものを、現在のrubyでも動くように、「くまクマさん」、「kojimaさん」からご指導頂いて修正したものを利用しています。
その為、「取り出し.batを実行させる為のrubyのバージョン」は、何でもよいです。

今回の外部変形は、AutoItで作っています。
実行させる為には、AutoItのインストールが必要になりますので、ご無理にとは申しません。
AutoIt Version: 3.3.14.2 で動作確認をしています。

http://blog.livedoor.jp/blackcode/archives/1224220.html
からたどると、
https://www.autoitscript.com/site/autoit/downloads/
に行き、
AutoItをダインロード出来ます。


取り出し.bat
この下から↓

ruby -Ks -x "%~f0"
exit

#! ruby
$stderr=open("error.log","w")
$stdout=open("strcount.zip","wb")
print "
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
".unpack("m").first

 ───────────────────────────────────────  ■題名 : Re:もうひとつの外部変形  ■名前 : マチャプチャレ  ■日付 : 17/6/3(土) 14:11  -------------------------------------------------------------------------
   ▼いっちさん:

なるほど、こうやるとAutoitで外部変形できるんですね。
ソースを見せて頂くととても勉強になります。

自分のはアホがばれるのでなかなかできませんw

 ───────────────────────────────────────  ■題名 : Re:もうひとつの外部変形  ■名前 : いっち  ■日付 : 17/6/3(土) 17:03  -------------------------------------------------------------------------
   ▼マチャプチャレさん:

こんにちは。
レスありがとうございます。

> Autoitで外部変形

GUIを利用する外部変形を作る場合は特に、「Autoitで外部変形」というのが、作りやすいかもしれませんね。
AutoIt外部変形は、作りやすいだけじゃ無くて、動作も快適だし。

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : いっち  ■日付 : 17/6/2(金) 17:50  -------------------------------------------------------------------------
   ▼R.Nさん:
R.Nさんこんばんは。

ご質問の内容がまとまって、アクセスしてみたら、あれ?
それでもご自身で作られたものとの、比較ぐらいには下記も使えるかもしれませんね。
まぁ、参考位に見てやってください。

尚、説明用のファイルは、別ファイルにしました。

----------------------------------

文字の小数点を丸める説明.txt
この下から↓

説明
この外部変形は、任意サイズの文字の小数点を丸めます。
丸めた結果、文字色も含めて通常の文字種と同じになった場合は、
その任意サイズの文字は、通常の文字種になります。


メニュー形式版文字の小数点を丸める.bat
この下から↓

@if(0==1) // 文字の小数点を丸める
@echo off
REM #jww
REM #cd
REM #hc(左)全グループ、(右)書込グループ
REM #hm項目|全グループ|書込グループ|BAT表示|外変説明|
REM #:1
REM #h3
REM #hc文字を選択してください
REM #g1
REM #zz
REM #bz
REM #e
REM #:2
REM #h3
REM #hc文字を選択してください
REM #g0
REM #zz
REM #bz
REM #e
REM #:3
REM #:4
REM #e
GOTO EXE-%1
:EXE-1
:EXE-2
cscript //nologo //e:jscript %0
goto:eof
:EXE-3
rem more コマンドは「スペースキー」で次のページを表示してください
more %0
pause
del jwc_temp.txt
goto:eof
:EXE-4
type 文字の小数点を丸める説明.txt | more
pause
del jwc_temp.txt
goto:eof
@end
function myround(cn) {
var temp = cn.split(/\s+/);
for (var i = 1; i < temp.length - 1; i++) {
temp[i] = Math.round(parseFloat(temp[i]) * 10) / 10;
}
return temp.join(" ");
}
blnflg = false;
with (new ActiveXObject("Scripting.FileSystemObject")) {
g = CreateTextFile("myfiles");
f = OpenTextFile("jwc_temp.txt");
while (!f.AtEndOfLine) {
line = f.ReadLine();
if (blnflg) {
if (/^cn0/ .test(line)) {
myss = (myround(line));
for (var j = 0; j < dic.Count; j++) {
if (strItems[j] == myss) {
myss = strKeys[j];
break;
}
}
g.WriteLine(myss);
} else {
g.WriteLine(line);
}
} else {
if (/^hq/ .test(line)) {
g.WriteLine("hd");
} else if (/^hcw/i.test(line)) {
hcw = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
} else if (/^hch/i.test(line)) {
hch = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
} else if (/^hcd/i.test(line)) {
hcd = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
} else if (/^hcc/i.test(line)) {
hcc = line.split(/\s+/).slice(1, 11);
g.WriteLine(line);
dic = new ActiveXObject("Scripting.Dictionary");
for (i = 0; i < hcw.length; i++) {
dic("cn" + (i + 1)) =
"cn0 " + hcw[i] + " " + hch[i] + " " + hcd[i] + " " + hcc[i];
}
strVBKeys = new VBArray(dic.Keys());
strVBItems = new VBArray(dic.Items());
strKeys = strVBKeys.toArray();
strItems = strVBItems.toArray();
blnflg = true;
} else {
g.WriteLine(line);
}
}
}
f.Close();
g.Close();
CopyFile("myfiles", "jwc_temp.txt")
DeleteFile("myfiles")
}

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : R.N  ■日付 : 17/6/2(金) 19:21  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

説明不足かと思い、書き直していたら、レス頂いていました。
御面倒お掛けして、申し訳ありません。
確認しました、感謝です。


>【レス内容】

>スクリプトの改変、ありがとうございます。

>私は、皆さんに作って頂いた外変に、batメニューを追記して、使用してます。
>例えば、batメニュー項目に、batファイルのテキスト表示・スクリプト説明書き表示・フォルダー参照等---、クリック選択で編集・参照等できるようにしてます。
>(記述方法については、LAさんに教えて頂いたました)

>このjscriptの場合の、記述方法を教えて頂けないでしょうか。
>(上手くいかなくて)

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : Ibuki  ■日付 : 17/6/3(土) 20:39  -------------------------------------------------------------------------
   ▼いっちさん:
こんばんは。お世話になっております。
外部変形公開いただきありがとうございます。
3種類の外部変形いただきました。
最近DXF変換図や縮小図を扱うことが多いので
大変うれしいです。重ねて御礼申し上げます。


>▼Ibukiさん:
>>▼R.Nさん:
>> 『文字種』の小数点が小数点第5位くらいになっているものを
>> 小数点第1位に一括で丸める と書かなければなりませんでした。
>それだけでしたら、私が自分用に以前作ったものを、
>それ用にしてみましたけれど、こんな感じですか?
>
>久しぶりに作ったので、
>http://sky.geocities.jp/lite_and_seen_lite/
>さまのページを、読み返しました。
>
>文字の小数点を丸める.bat
>この下から↓
>
>@if(0==1) // 文字の小数点を丸める
>@echo off
>REM #jww
>REM #cd
>REM #h3
>REM #hc文字を選択してください
>REM #g0
>REM #zz
>REM #bz
>REM #e
>cscript //nologo //e:jscript %0
>rem pause
>goto:eof
>@end
>function myround(cn) {
>var temp = cn.split(/\s+/);
>for (var i = 1; i < temp.length - 1; i++) {
>temp[i] = Math.round(parseFloat(temp[i]) * 10) / 10;
>}
>return temp.join(" ");
>}
>with (new ActiveXObject("Scripting.FileSystemObject")) {
>g = CreateTextFile("myfiles")
>f = OpenTextFile("jwc_temp.txt")
>while (!f.AtEndOfLine) {
>line = f.ReadLine()
>if (/^cn0/ .test(line)) {
>g.WriteLine(myround(line))
>} else {
>if (/^hq/ .test(line)) {
>g.WriteLine("hd")
>} else {
>g.WriteLine(line)
>}
>}
>}
>f.Close();
>g.Close();
>CopyFile("myfiles", "jwc_temp.txt")
>DeleteFile("myfiles")
>}

 ───────────────────────────────────────  ■題名 : Re:文字の小数点を丸めたい  ■名前 : O.M  ■日付 : 17/6/11(日) 6:30  -------------------------------------------------------------------------
   ▼Ibukiさん:
こんにちはー。

要望のものとは違うと思いますが、
Excel外部変形派(Excelしかわからない)なので、Excelで作成したちょっと近そうなものも張ってみます。

ダウンロード
http://nekobasu83.webdeki-bbs.com/nekobasu83_tree_r_9.html

説明
http://blog.livedoor.jp/nekobasu83/archives/19404772.html
※部分(倍数)、任意文種変換辺りが関連するかなーと考えています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 619