過去ログ

                                Page      82
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼外部変形の利用について  R.N 15/07/21(火) 16:44
   ┣Re(1):外部変形の利用について  卯之介 15/07/21(火) 19:31
   ┃  ┗Re(2):外部変形の利用について  R.N 15/07/22(水) 3:36
   ┣Re(1):外部変形の利用について  いっち 15/07/22(水) 6:51
   ┃  ┗Re(2):外部変形の利用について  R.N 15/07/22(水) 9:23
   ┗Re(1):外部変形の利用について  LA 15/07/22(水) 9:04
      ┣Re(2):外部変形の利用について  R.N 15/07/22(水) 11:33
      ┃  ┗Re(3):外部変形の利用について  LA 15/07/25(土) 2:03
      ┃     ┗Re(4):外部変形の利用について  R.N 15/07/26(日) 10:13
      ┃        ┗Re(5):外部変形の利用について  LA 15/07/26(日) 15:14
      ┃           ┗Re(6):外部変形の利用について  R.N 15/07/26(日) 16:39
      ┣Re(2):外部変形の利用について  いっち 15/07/22(水) 21:15
      ┃  ┗Re(3):外部変形の利用について  LA 15/07/25(土) 0:25
      ┃     ┗Re(4):外部変形の利用について  R.N 15/07/25(土) 2:22
      ┃        ┗Re(5):外部変形の利用について  LA 15/07/25(土) 7:20
      ┣Re(2):外部変形の利用について  いっち 15/07/26(日) 3:28
      ┃  ┗Re(3):外部変形の利用について  LA 15/07/26(日) 17:20
      ┃     ┗Re(4):外部変形の利用について  いっち 15/07/28(火) 9:22
      ┃        ┗Re(5):外部変形の利用について  R.N 15/07/28(火) 20:52
      ┃           ┗Re(6):外部変形の利用について  いっち 15/07/28(火) 21:32
      ┃              ┣Re(7):外部変形の利用について  いっち 15/07/28(火) 21:58
      ┃              ┗Re(7):外部変形の利用について  R.N 15/07/29(水) 4:54
      ┣Re(2):外部変形の利用について  R.N 15/07/27(月) 23:03
      ┃  ┗Re(3):外部変形の利用について  LA 15/07/28(火) 4:40
      ┃     ┗Re(4):外部変形の利用について  R.N 15/07/28(火) 7:53
      ┗Re(2):外部変形の利用について  R.N 15/07/29(水) 20:37
         ┗Re(3):外部変形の利用について  いっち 15/07/30(木) 17:32
            ┗Re(4):外部変形の利用について  R.N 15/07/30(木) 19:16
               ┗Re(5):外部変形の利用について  いっち 15/07/31(金) 8:33
                  ┣Re(6):外部変形の利用について  R.N 15/07/31(金) 10:24
                  ┃  ┗Re(7):外部変形の利用について  いっち 15/07/31(金) 11:09
                  ┃     ┗Re(8):外部変形の利用について  R.N 15/07/31(金) 12:16
                  ┗Re(6):外部変形の利用について  いっち 15/08/03(月) 8:03
                     ┗Re(7):外部変形の利用について  R.N 15/08/03(月) 19:21
                        ┗Re(8):外部変形の利用について  いっち 15/08/03(月) 22:18
                           ┣Re(9):外部変形の利用について  いっち 15/08/03(月) 23:01
                           ┃  ┗Re(10):外部変形の利用について  いっち 15/08/03(月) 23:32
                           ┃     ┗Re(11):外部変形の利用について  いっち 15/08/03(月) 23:55
                           ┗Re(9):外部変形の利用について  R.N 15/08/04(火) 10:21
                              ┗Re(10):外部変形の利用について  いっち 15/08/04(火) 14:49
                                 ┗Re(11):外部変形の利用について  R.N 15/08/04(火) 21:49
                                    ┗Re(12):外部変形の利用について  いっち 15/08/04(火) 22:10
                                       ┣Re(13):外部変形の利用について  R.N 15/08/04(火) 23:13
                                       ┃  ┗Re(14):外部変形の利用について  LA 15/08/04(火) 23:50
                                       ┃     ┣Re(15):外部変形の利用について  R.N 15/08/05(水) 8:13
                                       ┃     ┗Re(15):外部変形の利用について  R.N 15/08/05(水) 17:14
                                       ┗Re(13):外部変形の利用について  いっち 15/08/05(水) 14:52
                                          ┗Re(14):外部変形の利用について  いっち 15/08/05(水) 20:21
                                             ┗Re(15):外部変形の利用について  LA 15/08/06(木) 10:17
                                                ┗Re(16):外部変形の利用について  いっち 15/08/06(木) 10:56

 ───────────────────────────────────────
 ■題名 : 外部変形の利用について
 ■名前 : R.N
 ■日付 : 15/07/21(火) 16:44
 -------------------------------------------------------------------------
   みなさん、こんにちは

外変をどのように管理・利用されてますか?。
CADの場合、状況によって、かなりの外変が必要であることは、仕方ないことと思いますが、その便利な外変を状況に応じて、即座に使えてますか?。
私の場合、外変の数が多いため、いまだに、使いきれてないように思います。
なるべく、簡単に利用できるように---とは考えているのですが。

私の利用方法ですが、

1.同系の外変を、BATメニューにまとめる。
2.外変メニューソフトを利用し、用途別に分かりやすく、利用しやすくする。
3、よく使う外変をクロックメニューに登録する。

この程度で---

もっと何か直感的に使いやすい方法等あれば、ご意見頂ければ、有難いです。

エクスプローラのような階層形式で登録・表示・選択できれば---とか思ったり?

 ───────────────────────────────────────  ■題名 : Re(1):外部変形の利用について  ■名前 : 卯之介  ■日付 : 15/07/21(火) 19:31  -------------------------------------------------------------------------
   > エクスプローラのような階層形式で登録・表示・選択

標準メニューがそうなってますので、フォルダ分けして貯めています。
使う量にもよるでしょうけど満足しています。
使う人の記憶力にも依存するかと思いますね、滅多に使わない物は思い出さなくなっていきますから
変に分類してしまい込まないのも手かも知れません。

 ───────────────────────────────────────  ■題名 : Re(2):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/22(水) 3:36  -------------------------------------------------------------------------
   ▼卯之介さん:
>> エクスプローラのような階層形式で登録・表示・選択
>
>標準メニューがそうなってますので、フォルダ分けして貯めています。
>使う量にもよるでしょうけど満足しています。
>使う人の記憶力にも依存するかと思いますね、滅多に使わない物は思い出さなくなっていきますから

言われる通り、歳のせいもあるのでしょうが、どこに置いたのか分からなくなったり、捜している暇があったら、直接書いた方が---みたいな。
宝の持ち腐れのように思うことがあります。

>変に分類してしまい込まないのも手かも知れません。

それもありますね。

ご意見、ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(1):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/22(水) 6:51  -------------------------------------------------------------------------
   ▼R.Nさん:

> 外変をどのように管理・利用されてますか?。

> 1.同系の外変を、BATメニューにまとめる。
外部変形の場合は、欲しい機能を単体で使えた方が便利なような
気がしていて、これは行っていません。

> 2.外変メニューソフトを利用し、用途別に分かりやすく、利用しやすくする。
確かR.Nさんの為に、外変メニューソフトを作られた方がいたような?

私も外変メニューソフトも用いていますが、T_Menu
http://www.vector.co.jp/soft/win95/business/se224399.html
を利用させて頂いています。

但し、このソフトを快適に利用させて頂く為に行ったことがあります。

1)このソフトを、c:\jwwのフォルダーに入れました。
2)このソフトの起動バッチT_Menu.batには、REM #cdが書かれていたと
 思うのですが、c:\jwwに入れるなら不要なので消しました。
3)クロックのg_plusの位置にT_Menuを登録しました。
 ↑これを行うと、g_plusは正常動作しなくなったと記憶しています。

※T_Menuを、任意のフォルダーに入れる運用では、
 動作が今ひとつだったような気が少ししています。

> 3、よく使う外変をクロックメニューに登録する。
基本的にはこれですが、よく使う外変だけです。
必要以上に登録しても、(私は)忘れてしまいます。

> エクスプローラのような階層形式で登録・表示・選択できれば---とか思ったり?
C:\JwTool以下にホルダー分けしていますが、運用上便利です。

> もっと何か直感的に使いやすい方法等あれば、ご意見頂ければ、有難いです。
どうでしょう?
それは何ともいえません。

 ───────────────────────────────────────  ■題名 : Re(2):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/22(水) 9:23  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、お久しぶりです。

>> 1.同系の外変を、BATメニューにまとめる。
>外部変形の場合は、欲しい機能を単体で使えた方が便利なような
>気がしていて、これは行っていません。
これも、多少、分かりづらくしている部分もあるかもです。

>> 2.外変メニューソフトを利用し、用途別に分かりやすく、利用しやすくする。
>確かR.Nさんの為に、外変メニューソフトを作られた方がいたような?
長い間、g_plusを利用させて頂いていたのですが、色々、使いづらい部分があったりで、現在は、ご察しのとおり、RN_Menuを使用させて頂いています。
http://afsoft.jp/program/p05.html
T_Menuを試用程度で、使ったことはあるのですが、移行するまでには

>私も外変メニューソフトも用いていますが、T_Menu
>http://www.vector.co.jp/soft/win95/business/se224399.html
>を利用させて頂いています。
>
>但し、このソフトを快適に利用させて頂く為に行ったことがあります。
>
>1)このソフトを、c:\jwwのフォルダーに入れました。
>2)このソフトの起動バッチT_Menu.batには、REM #cdが書かれていたと
> 思うのですが、c:\jwwに入れるなら不要なので消しました。
>3)クロックのg_plusの位置にT_Menuを登録しました。
> ↑これを行うと、g_plusは正常動作しなくなったと記憶しています。
>
>※T_Menuを、任意のフォルダーに入れる運用では、
> 動作が今ひとつだったような気が少ししています。

色々と試されているのですね。

>> 3、よく使う外変をクロックメニューに登録する。
>基本的にはこれですが、よく使う外変だけです。
>必要以上に登録しても、(私は)忘れてしまいます。
同感です。

>> エクスプローラのような階層形式で登録・表示・選択できれば---とか思ったり?
>C:\JwTool以下にホルダー分けしていますが、運用上便利です。
整理が悪いところもあります。作者さん別だったり、フォルダー・bat単体だったり
整理し直した方がいいのでしょうが、中々---。

ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(1):外部変形の利用について  ■名前 : LA  ■日付 : 15/07/22(水) 9:04  -------------------------------------------------------------------------
   ▼R.Nさん:
こんにちは


LAの外変環境は、整備されてないので、あまり、参考になるような事はありませんが、

>エクスプローラのような階層形式で登録・表示・選択できれば---とか思ったり
簡単にできそうな、階層形式の外変メニューを思いついたので、作ってみました。
もしよろしければ、いじりたおしてやってください。

実行には、UWSCが必要となります(要関連付)。
batMenu.bat , batMenu.uws , batMenu.txt を同じフォルダに置き、外変として実行してください。
尚、batMenu.txt については、これがメニューの内容となりますので、batMenu.uws の末尾を参考に、各自作成して下さい。


batMenu.bat
:=======この次行から======================
REM 外変メニュー簡易版(要UWSC)
REM #jww
REM #cd
REM #h0

:再実行時の実行フォルダが期待通りでなかったので対策
set back=%cd%
%~d0
cd %~p0

del jwc_temp.txt
start /w batMenu.uws

copy /y jwc_temp.txt %back%
:=======この前行まで======================


batMenu.uws
//=======この次行から======================
//外変メニュー簡易版(要UWSC)

CTRLWIN(GETID("cmd.exe"),HIDE) //DOS窓隠し

//メニュー作成
f=FOPEN("batMenu.txt",F_READ)
t=FGET(f,F_ALLTEXT)
FCLOSE(f)

t=SPLIT(t,"<#CR>")
n=RESIZE(t)
dim batListM[n],batList[n]
FOR i=0 to n
t1=SPLIT(t[i],",")
IF RESIZE(t1)=0 THEN
 batListM[i]="-----------------"
 batList[i]=""
ELSE
 batListM[i]=TRIM(t1[0])
 batList[i]=TRIM(t1[1])
ENDIF
NEXT

m=POPUPMENU(batListM)
IF m<0 THEN EXITEXIT

//jwc_temp.txt出力
f=FOPEN("jwc_temp.txt",F_WRITE)
IF FOPEN(batList[m],F_EXISTS) THEN
FPUT(f,"h/"+batList[m])
ELSE
FPUT(f,"h#["+batList[m]+"] が見つかりません") //これの直後に再実行(R)できるように
ENDIF
FCLOSE(f)


PROCEDURE 以下コメント
FEND

batMenu.txt 書き方例
標準 ,
{三斜 , C:\JWW\JWW_SMPL.BAT
面積計算 , C:\JWW\ZAHYOU.BAT
天空} , C:\JWW\TENHYOU.BAT

自作 ,
{JwfSwitcher , c:\jww\gaihen\my\JwfSwitcher.bat
線色変更 ,
{線色抽出 , c:\jww\gaihen\my\線色抽出.bat
線色変更} , c:\jww\gaihen\my\線色変更.bat
連続印刷} , c:\jww\gaihen\my\連続印刷.bat


表示名 , batファイル名 の様に書く
{}で囲むと、直前行のサブメニューになる(ネスト可)
,が無い行はセパレータとなる
=======この前行まで======================

 ───────────────────────────────────────  ■題名 : Re(2):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/22(水) 11:33  -------------------------------------------------------------------------
   ▼LAさん:
こんにちは、お世話様です。
早速、試用させて頂きました。

慌てモンなもので、batMenu.txtも作らず、いきなり

GetValue:Variant or safe array index out of bounds
16行目:BATLIST[1]=TRIM(T1[1])

当然ですね(T_T)

面白〜い、と言ったら、怒られるかもしれませんが、色々な方法があるものですね。
羨ましいかぎり---
まだ、LAさんのデータでしか試してませんが、
現在、クロックメニューに入れてる外変をこちらに移転して、一つにしても、よさそうですね。
ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(3):外部変形の利用について  ■名前 : LA  ■日付 : 15/07/25(土) 2:03  -------------------------------------------------------------------------
   ▼R.Nさん:
こんにちは


いつも、ご試用、ありがとうございます。


>>:再実行時の実行フォルダが期待通りでなかったので対策
>>set back=%cd%
>>%~d0
>>cd %~p0
>>copy /y jwc_temp.txt %back%

この件ですが、
どうも、h/ で移行した場合、再実行すると、その前の外変が実行されるのですが、そのときの実行フォルダが、何故かh/ 先の物となってしまい、普通にやるとまともに動作しません。
そこで、batファイル内で、カレントフォルダをbatMenu.batのあるところに移動してからbatMenu.uwsを実行し、出来たJWC_TEMP.txt を、もともとの実行フォルダに描き戻す ことにしました。


次に、再実行が選択先の外変ではなく、これになってしまう件ですが、

G+が、選択先の外変batのコピーを作成し、前後を改変して実行しているのに対し、これは、h/ を出力して選択先の外変に移行するのみで、それ以降の動作に関与する事はできません。

そこで、再実行機能を付けてみました。一手増えてしまいますが、許容範囲、という事で...
再実行機能を使いたい場合は、batMenu.txtの先頭行を、
<再> ,
として下さい。以降実行する度に、この部分が書き換わるようになります。
<再>が邪魔になるケースもあるので、先頭行がそうなっていない場合は書き換えせず、再実行機能は働きません。


batMenu.uws
//=======この次行から======================
//外変メニュー簡易版(要UWSC)

CTRLWIN(GETID("cmd.exe"),HIDE) //DOS窓隠し
//au3=CREATEOLEOBJ("AutoItX3.Control")
//au3.AutoItSetOption("WinTitleMatchMode",2) //2:部分一致
//au3.WinSetState("cmd.exe","",au3.SW_HIDE)


//メニュー作成
f=FOPEN("batMenu.txt",F_READ)
t=FGET(f,F_ALLTEXT)
FCLOSE(f)

t=SPLIT(t,"<#CR>")
n=RESIZE(t)

dim batListM[n],batList[n]
FOR i=0 to n
t1=SPLIT(t[i],",")
IF RESIZE(t1)=0 THEN
 batListM[i]="-----------------"
 batList[i]=""
ELSE
 batListM[i]=TRIM(t1[0])
 batList[i]=TRIM(t1[1])
ENDIF
NEXT

m=POPUPMENU(batListM)
IF m<0 THEN EXITEXIT

//jwc_temp.txt出力
f=FOPEN("jwc_temp.txt",F_WRITE)
IF FOPEN(batList[m],F_EXISTS) THEN
FPUT(f,"h/"+batList[m])
ELSE
FPUT(f,"h#["+batList[m]+"] が見つかりません") //これの直後に再実行(R)できるように
ENDIF
FCLOSE(f)

//<再> を書換
IF COPY(batListM[0],1,3)="<再>" AND m<>0 THEN
t[0]="<再>"+REPLACE(REPLACE(batListM[m],"{",""),"}","") +" , "+batList[m]
f=FOPEN("batMenu.txt",F_WRITE)
FPUT(f,JOIN(t,"<#CR>"))
FCLOSE(f)
ENDIF
//msgbox(GET_CUR_DIR)


PROCEDURE 以下コメント
FEND

batMenu.txt 書き方例
<再> ,
標準 ,
{三斜 , C:\JWW\JWW_SMPL.BAT
面積計算 , C:\JWW\ZAHYOU.BAT
天空} , C:\JWW\TENHYOU.BAT

自作 ,
{JwfSwitcher , c:\jww\gaihen\my\JwfSwitcher\JwfSwitcher.bat
線色変更 ,
{線色抽出 , c:\jww\gaihen\my\線色抽出.bat
線色変更} , c:\jww\gaihen\my\線色変更.bat
連続印刷} , c:\jww\gaihen\my\参考\連続印刷.BAT


表示名 , batファイル名 の様に書く
{}で囲むと、直前行のサブメニューになる(ネスト可)
,が無い行はセパレータとなる
最初の行を、<再> , とすると、実行後、今回使用した外変に書き換わる
エクスプローラ Shift+右クリック-> で、ファイルのフルパスが取得可

CTRLWIN(GETID("cmd.exe"),SHOW) //非常用
=======この前行まで======================

 ───────────────────────────────────────  ■題名 : Re(4):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/26(日) 10:13  -------------------------------------------------------------------------
   ▼LAさん:

こんにちは、
八戸出張(4ヵ月)も終わり、帰ってきてからの返事となり、遅くなりました。
すみません

>>>:再実行時の実行フォルダが期待通りでなかったので対策
>>>set back=%cd%
>>>%~d0
>>>cd %~p0
>>>copy /y jwc_temp.txt %back%
>
>この件ですが、
>どうも、h/ で移行した場合、再実行すると、その前の外変が実行されるのですが、そのときの実行フォルダが、何故かh/ 先の物となってしまい、普通にやるとまともに動作しません。
>そこで、batファイル内で、カレントフォルダをbatMenu.batのあるところに移動してからbatMenu.uwsを実行し、出来たJWC_TEMP.txt を、もともとの実行フォルダに描き戻す ことにしました。

上記、記述なしの場合も試してみてたのですが、言われるようなエラーになりますね。

>次に、再実行が選択先の外変ではなく、これになってしまう件ですが、
>
>G+が、選択先の外変batのコピーを作成し、前後を改変して実行しているのに対し、これは、h/ を出力して選択先の外変に移行するのみで、それ以降の動作に関与する事はできません。

外変batに#hrを記述しない方が使いやすい場合(戻るで再実行)があり、相談させて頂きました。

>そこで、再実行機能を付けてみました。一手増えてしまいますが、許容範囲、という事で...
>再実行機能を使いたい場合は、batMenu.txtの先頭行を、
><再> ,
>として下さい。以降実行する度に、この部分が書き換わるようになります。
><再>が邪魔になるケースもあるので、先頭行がそうなっていない場合は書き換えせず、再実行機能は働きません。

リスト先頭に、"--------"は表示されるのですが、外変実行後、クリックすると、"[]がみつかりません"となります。
ここに、前回使用の外変名?が入るのかな、と思うのですが。

それから、レス削除したにも関わらず、返信頂き、すみません。
(自分で考えもせず、レスするのも申し訳ない-----とか思い)

それと、Autolt3についても、詳しい説明頂き、
ありがとうございます。

蛇足で、batMenu.txt の例

分類I ⇒ 分類II-1 ⇒ 外変名1 ⇒ 1.bat
      分類II-2 ⇒ 外変名2 ⇒ 2.bat

と、したいとき、

=====batMenu.txt(記述例)===========
分類I ,
{分類II-1 ,
{外変名1} , C:\jww\gaibu\111\1.bat
分類II-2 ,
{外変名2}} , C:\jww\gaibu\222\2.bat
=================================

 ───────────────────────────────────────  ■題名 : Re(5):外部変形の利用について  ■名前 : LA  ■日付 : 15/07/26(日) 15:14  -------------------------------------------------------------------------
   ▼R.Nさん:
こんにちは


そうだったんでしたか。
長い出張、お疲れ様でした。


>リスト先頭に、"--------"は表示されるのですが、外変実行後、クリックすると、"[]がみつかりません"となります。
>ここに、前回使用の外変名?が入るのかな、と思うのですが。
ここは少し手を抜いたヶ所なので、引っかかりやすいかな。
>>,が無い行はセパレータとなる
が優先されますので、
<再> ,
という様に、 , も忘れずに付けてください。


>蛇足で、batMenu.txt の例
>分類I ⇒ 分類II-1 ⇒ 外変名1 ⇒ 1.bat
>     分類II-2 ⇒ 外変名2 ⇒ 2.bat
>と、したいとき、
>=====batMenu.txt(記述例)===========
>分類I ,
>{分類II-1 ,
>{外変名1} , C:\jww\gaibu\111\1.bat
>分類II-2 ,
>{外変名2}} , C:\jww\gaibu\222\2.bat
>=================================
これ、入れようと思ってたら、消えてたので、入れれませんでした。
再掲載、ありがとございます。

 ───────────────────────────────────────  ■題名 : Re(6):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/26(日) 16:39  -------------------------------------------------------------------------
   ▼LAさん:

><再> ,
>という様に、 , も忘れずに付けてください。

そうでした、注意力に欠けますね。(ノ_-。)
ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(2):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/22(水) 21:15  -------------------------------------------------------------------------
   ▼LAさん:

こんばんは。

> batMenu.uws
> //=======この次行から======================
> //外変メニュー簡易版(要UWSC)
> CTRLWIN(GETID("cmd.exe"),HIDE) //DOS窓隠し

私は、AutoIt v3で外部変形の作成も行うようになったのですが、
Formを用いる外部変形でこれと同等の事を行ってみたところ
なかなか良いみたいです。
 ↑
※Formの移動位置をiniに記録させるようなタイプの場合、
 DOS窓が邪魔になってバグったりしましたので。

今のところは様子見で、
1) スクリプトを、2重起動しないようにする。
2) Exit 0でない場合は、強制的にDOS窓を出す。
  など行って試しているところではあります。

UWSCで文字列処理を行う外部変形を作ろうとすると、
やや遅いような気がしますが、AutoIt v3では快適です。

その為、Formを用いない外部変形では、わざわざDOS窓を
隠す必要はありませんけれど。

参考にさせて頂きました。

 ───────────────────────────────────────  ■題名 : Re(3):外部変形の利用について  ■名前 : LA  ■日付 : 15/07/25(土) 0:25  -------------------------------------------------------------------------
   ▼いっちさん:
こんにちは


レスが遅くなりましたが、いろいろと、ありがとうございます。


動作速度自体は、AutoItの方が早いかな。

試しに、
//CTRLWIN(GETID("cmd.exe"),HIDE) //DOS窓隠し
au3=CREATEOLEOBJ("AutoItX3.Control")
au3.AutoItSetOption("WinTitleMatchMode",2) //2:部分一致
au3.WinSetState("cmd.exe","",au3.SW_HIDE)
としてみたところ、DOS窓が消えるまでの時間が若干短くなりました。

AutoItはGUI機能が強力なので、Formを用いるような外変をつくるのにも便利ですよね。

こちらこそ、参考になります。
どうもありがとうございました。

 ───────────────────────────────────────  ■題名 : Re(4):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/25(土) 2:22  -------------------------------------------------------------------------
   ▼LAさん・いっちさん:こんにちは

>試しに、
>//CTRLWIN(GETID("cmd.exe"),HIDE) //DOS窓隠し
>au3=CREATEOLEOBJ("AutoItX3.Control")
>au3.AutoItSetOption("WinTitleMatchMode",2) //2:部分一致
>au3.WinSetState("cmd.exe","",au3.SW_HIDE)

に、変更したら、

COM_Error:クラス文字列が無効です,ProgID:"AutoIt3.Contorol"
4行目:AU3=CREATEOLEOBJ("AutoItX3.Contorol")

で、ストップ?

AutoIt v3は、
http://blog.livedoor.jp/blackcode/archives/1224220.html
から、DL・インストール、
最初、64をインストールしたのですが、ダメで、32?86で"OK"でした。

 ───────────────────────────────────────  ■題名 : Re(5):外部変形の利用について  ■名前 : LA  ■日付 : 15/07/25(土) 7:20  -------------------------------------------------------------------------
   ▼R.Nさん:
こんにちは


さっそくの試用、ありがとうございます。


これは、AutoItV3に付属している、AutoItX という機能を利用しています。
AutoItXは、AutoItのOCM/DLLバージョンで、この様に、他言語からAutoItの一部の機能を呼び出すことができます。


で、32bitアプリであるUWSCから呼び出されたので、使われるAutoItXも、32bit(x86)版のものとなります。
AutoItのフォルダを見るとわかるのですが、x64 , x86 どちらでインストールしても、構成ファイルに変わりはなく、両方とも入っています。どうも、両者の差は、レジストリ登録とか、そういったところの様です。

ということで、もし、64bit版でAutiItをインストールした場合は、
http://blog.livedoor.jp/blackcode/archives/1795724.html
のCOMインターフェイス のところを参考に、

コマンドプロンプトを管理者権限で開いて、
cd \tool\AutoIt3\AutoItX  (c:\tool\AutoIt3 にAutoItをインストールした場合)
regsvr32.exe AutoItX3.dll
で、x86版の AutoItX も登録されます。

逆に、x86版でインストールした場合は、
regsvr32.exe AutoItX3_x64.dll
で、x64版のAutoItX も登録されますが、必要な場面がかなり限られますので、必要になったときに登録 でもいいと思います。

 ───────────────────────────────────────  ■題名 : Re(2):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/26(日) 3:28  -------------------------------------------------------------------------
   ▼LAさん:

こんにちは。

> もしよろしければ、いじりたおしてやってください。

お言葉に甘えていじりたおさせて頂きました。

(自分用にバッチファイル及びスクリプトを、
 少しだけ、調整してみました。)

私のjw_win.jwfの設定を、下記の設定としてみました。
GCOM_100 =batMenu,
LD2_AM = 100

T_Menuはc:\jwwに入れていて、そこにT_MenuのPATH.TXTがあります。
そのPATH.TXTをLAさんのbatMenu.uwsでも利用するようにしてみました。

LAさんのbatMenu.uwsもc:\jwwに入れました。
batMenu.uwsの呼び出しは、(あくまで)クロックメニューから
呼び出す事を前提としています。

私にはそれで良いかなと思います。

改良点としては、既に登録してあるT_MenuのPATH.TXTを
利用したかったからという点です。

LAさんが提示されたスクリプトを利用して見たかったから
というのも理由です。

 ───────────────────────────────────────  ■題名 : Re(3):外部変形の利用について  ■名前 : LA  ■日付 : 15/07/26(日) 17:20  -------------------------------------------------------------------------
   ▼いっちさん:
こんにちは


いじりたおし、ありがとうございます。


T_Menu の PATH.TXT ですか。

構成が似ているから、
1項目目のタブNoごとに{}でくくり、
2項目目のbatファイル名を項目名に使う様にしてやれば、
そのまま共有できますね。
おそれおおいような気もしますが...


おもしろい用例、ありがとうございました。

 ───────────────────────────────────────  ■題名 : Re(4):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/28(火) 9:22  -------------------------------------------------------------------------
   ▼LAさん:

こんにちは。

> そのまま共有できますね。
> おそれおおいような気もしますが...

というか、batMenu.uwsの機能を制限してしまいますね。

私の場合T_Menuからの以降を考えていて、簡単に移行できる方法を
模索していました。
現段階では、下記のようにしてみました。

1. T_MenuのPATH.TXTはもともとLAさんのbatMenu.uwsへの移行がしやすい
  書き出しになっていました。
2. T_MenuのPATH.TXTをコピーし、名前をbatPATH.TXTとしました。
3. batPATH.TXTの記述方法は、下記です。
※タブは文字ではなく、タブ(TAB)を入力する事を示します。

(例1)
分類I
タブ分類II-1
タブタブ外変名1タブC:\jww\gaibu\111\1.bat
タブ分類II-2
タブタブ外変名2タブC:\jww\gaibu\222\2.bat

(例2)
標準
タブ三斜タブC:\JWW\JWW_SMPL.BAT
タブ面積計算タブC:\JWW\ZAHYOU.BAT
タブ天空タブC:\JWW\TENHYOU.BAT

自作
タブJwfSwitcherタブc:\jww\gaihen\my\JwfSwitcher.bat
タブ線色変更
タブタブ線色抽出タブc:\jww\gaihen\my\線色抽出.bat
タブタブ線色変更タブc:\jww\gaihen\my\線色変更.bat
タブ連続印刷タブc:\jww\gaihen\my\連続印刷.bat

上記(例1)や(例2)を、batMenu.txtの形式に変更するスクリプト
(バッチファイル)は、下記です。
※てすとbatMenu.txtを書き出します。
※awkをバッチに記述する方法は、Lite & Seen Liteさんのページより
 学んでおります。

※空行が実は空行ではなく、タブやスペースが入っていたとか、
 最終行にも実は、余計なタブやスペースが入っていたとかだと、
 正常動作しません。

※全てのケースに対処したとは、申しません。
 自分が考えられる範囲での対応です。

↓ batMenuText整形.bat (この下から)

@findstr /v "^@"; %0 | jgawk -f - batPATH.txt>てすとbatMenu.txt & goto:eof
BEGIN{aflg=0;OFS=","}
{
if($0~/^$/){strflg=1;next}
bflg=aflg
if($0~/^[^\t]/){aflg=0}
else if($0~/^\t[^\t]/){aflg=1}
else if($0~/^\t\t[^\t]/){aflg=2}
else if($0~/^\t\t\t/){
print(NR "行目は未対応です")
endflg=1;exit
}
$1=$1
if(bflg<aflg){
$1="{" $1;cflg+=1
}else if(bflg==aflg+1){
bstr1=bstr1 "}";cflg-=1
}else if(bflg==aflg+2){
bstr1=bstr1 "}}";cflg-=2
}
if(length(bstr1)>0){
print bstr1,bstr2
if(strflg==1){printf "\n"}
}
bstr1=$1;bstr2=$2;strflg=0
}
END{
if(endflg==0){
if(cflg==1){print bstr1 "}",bstr2}
else if(cflg==2){print bstr1 "}}",bstr2}
else{print bstr1,bstr2}
}
}

 ───────────────────────────────────────  ■題名 : Re(5):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/28(火) 20:52  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

batMenuText整形.batを実行しても、白紙しか吐出してくれないので、batを止めてみたら、下記エラーが戻ってました。

jgawk: -:1: ^ Invalid char '@' in expression

原因は、何でしょう? (jgawk 1.8.6)

 ───────────────────────────────────────  ■題名 : Re(6):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/28(火) 21:32  -------------------------------------------------------------------------
   ▼R.Nさん:

こんばんは。


>原因は、何でしょう? (jgawk 1.8.6)

何故だか解らないのですが、掲示板にコードを貼ると、
@”と %0の間に意味不明な;が入ってしまい除去できないようです。

↑バケないように全角にして今回は投稿しますが
本当は半角です。

意味不明な;を削除すれば動きませんか?

 ───────────────────────────────────────  ■題名 : Re(7):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/28(火) 21:58  -------------------------------------------------------------------------
   ▼いっちさん:
>▼R.Nさん:
>
>こんばんは。
>
>
>>原因は、何でしょう? (jgawk 1.8.6)
>
>何故だか解らないのですが、掲示板にコードを貼ると、
>@”と %0の間に意味不明な;が入ってしまい除去できないようです。
>
>↑バケないように全角にして今回は投稿しますが
>本当は半角です。
>
>意味不明な;を削除すれば動きませんか?

書き忘れました。
1行目だけです。

 ───────────────────────────────────────  ■題名 : Re(7):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/29(水) 4:54  -------------------------------------------------------------------------
   ▼いっちさん:

>意味不明な;を削除すれば動きませんか?

動作しました。
ありがとうございます。

(jgawk 1.8.6)は、間違いでした。
rubyと勘違いしてました。

 ───────────────────────────────────────  ■題名 : Re(2):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/27(月) 23:03  -------------------------------------------------------------------------
   ▼LAさん:

こんにちは、質問ばかりで、ごめんなさい。

作図画面のマウス位置に、リストが表示されますが、

リスト表示をよく見ると、文字列の左側に、空白の"列"?---なのか、うっすらと"縦線"が見えますが、この間を利用できたり?、幅調整したり、または、削除とかできるのでしょうか?

それと、階層的にリスト表示されますが、階層間のリストどうしの間隔は、調整できるのでしょうか?

ご意見だけで、結構です。

よろしく、お願いします。

 ───────────────────────────────────────  ■題名 : Re(3):外部変形の利用について  ■名前 : LA  ■日付 : 15/07/28(火) 4:40  -------------------------------------------------------------------------
   ▼R.Nさん:
こんにちは


>リスト表示をよく見ると、文字列の左側に、空白の"列"?---なのか、うっすらと"縦線"が見えますが、この間を利用できたり?、幅調整したり、または、削除とかできるのでしょうか?
>それと、階層的にリスト表示されますが、階層間のリストどうしの間隔は、調整できるのでしょうか?


HELPの、POPUPMENU のところを抜粋
>// ポップアップメニュ
>戻値 = POPUPMENU( メニュ項目, [X, Y] ) 
>引数
>メニュ項目: 表示メニュ項目を配列変数にて渡す
>(サブメニュは { } にて指定: a,b,{c, d},e の場合は c,dがbのサブメニュになる)
> X、Y: 表示位置 X、Y (デフォルトはマウス位置)
>戻値
>選択された項目の配列変数位置


うーん。どちらも、UWSCの機能だけではできないっぽいですね。
一般的な、Windowのメニューと同じ形状で、ソフトによってはアイコンとか入るんですが、UWSCにはその辺の機能は実装されていないようです。

 ───────────────────────────────────────  ■題名 : Re(4):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/28(火) 7:53  -------------------------------------------------------------------------
   LAさん;こんにちは、

見た目だけの質問で、ごめんなさい。
ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(2):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/29(水) 20:37  -------------------------------------------------------------------------
   ▼LAさん:こんにちは

公開して頂いてから、常に使用する外変を、こちらに登録し続けている状況です。
(個人的に、ま〜3階層位までが、分かりやすいかな(数にも限度が)?---などと思いつつ)

AFさんに作って頂いたRN_Menuも、batから起動するように作成・登録し、以前のEXE起動(クイック起動)に加え、双方から起動できるようになり、便利になりました。

今まで以上に、外変を広く見渡せるようになり、使いやすさは倍増です。

色々と、勝手なことばかり言って、寝不足などご苦労をお掛けし、誠に恐縮です。

素晴らしいプログラム提供して頂き、感謝致します。

 ───────────────────────────────────────  ■題名 : Re(3):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/30(木) 17:32  -------------------------------------------------------------------------
   ▼R.Nさん:

> (個人的に、ま〜3階層位までが、分かりやすいかな
> (数にも限度が)?---などと思いつつ)

こんにちは。

もし、私が書いたコードを修正される場合、
力技で修正するなら、下記です。
試しにですが、一度だけやってみました。

但し、詳細な動作確認を行った訳ではありませんので
だめでもご容赦ください。

元の7行目から記述します。
 else if($0~/^\t[^\t]/){aflg=1}
 else if($0~/^\t\t[^\t]/){aflg=2}
 else if($0~/^\t\t\t[^\t]/){aflg=3}
 else if($0~/^\t\t\t\t[^\t]/){aflg=4}

元の9行目は、行が下にずれますが、
下記のように修正します。
 else if($0~/^\t\t\t\t\t/){
  print(NR "行目は未対応です")
  endflg=1;exit
 }

上記と同様の修正を下記でも行います。
下記は元の16行目です。
 }else if(bflg==aflg+1){
  bstr1=bstr1 "}";cflg-=1
 }else if(bflg==aflg+2){
  bstr1=bstr1 "}}";cflg-=2
 }else if(bflg==aflg+3){
  bstr1=bstr1 "}}}";cflg-=3
 }else if(bflg==aflg+4){
  bstr1=bstr1 "}}}}";cflg-=4

上記と同様の修正を下記でも行います。
下記は元の29行目です。
  if(cflg==1){print bstr1 "}",bstr2}
  else if(cflg==2){print bstr1 "}}",bstr2}
  else if(cflg==3){print bstr1 "}}}",bstr2}
  else if(cflg==4){print bstr1 "}}}}",bstr2}
  else{print bstr1,bstr2}
 }
}

batPATH.TXTの記述例は下記です。

分類I
タブ分類II-1
タブタブ外変名1タブC:\jww\gaibu\111\1.bat
タブ分類II-2
タブタブ外変名2タブC:\jww\gaibu\222\2.bat
タブタブ分類II-3
タブタブタブ外変名3-1タブC:\jww\gaibu\333\31.bat
タブタブタブ外変名3-2タブC:\jww\gaibu\333\32.bat
タブタブタブ分類II-4
タブタブタブタブ外変名4-1タブC:\jww\gaibu\444\41.bat
タブタブタブタブ外変名4-2タブC:\jww\gaibu\444\42.bat

標準
タブ三斜タブC:\JWW\JWW_SMPL.BAT
タブ面積計算タブC:\JWW\ZAHYOU.BAT
タブ天空タブC:\JWW\TENHYOU.BAT

自作
タブJwfSwitcherタブc:\jww\gaihen\my\JwfSwitcher.bat
タブ線色変更
タブタブ線色抽出タブc:\jww\gaihen\my\線色抽出.bat
タブタブ線色変更タブc:\jww\gaihen\my\線色変更.bat
タブ連続印刷タブc:\jww\gaihen\my\連続印刷.bat

 ───────────────────────────────────────  ■題名 : Re(4):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/30(木) 19:16  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

珍しく、一発で転記でき・動作しました。(*^^*)ポッ
ありがとうございま〜す。

 ───────────────────────────────────────  ■題名 : Re(5):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/31(金) 8:33  -------------------------------------------------------------------------
   ▼R.Nさん:

こんにちは。

> 一発で転記でき・動作しました。(*^^*)ポッ
良かったです。

おそらく、ご自身で転記のご苦労をされたスクリプトの方が
愛着があるかもしれませんが、あえて、
> (数にも限度が)?---などと思いつつ)
に挑戦してみました。

※ batPATH.TXTの記述例は下記です。

分類I
タブ分類II-1
タブタブ外変名1タブC:\jww\gaibu\111\1.bat
タブ分類II-2
タブタブ外変名2タブC:\jww\gaibu\222\2.bat
タブタブ分類II-3
タブタブタブ外変名3-1タブC:\jww\gaibu\333\31.bat
タブタブタブ外変名3-2タブC:\jww\gaibu\333\32.bat
タブタブタブ分類II-4
タブタブタブタブ外変名4-1タブC:\jww\gaibu\444\41.bat
タブタブタブタブ外変名4-2タブC:\jww\gaibu\444\42.bat
タブタブタブタブ分類II-51
タブタブタブタブタブ外変名51-1タブC:\jww\gaibu\555\51.bat
タブタブタブタブタブ外変名51-2タブC:\jww\gaibu\555\52.bat
タブタブタブタブタブ分類II-6
タブタブタブタブタブタブ外変名6-1タブC:\jww\gaibu\666\61.bat
タブタブタブタブタブタブ外変名6-2タブC:\jww\gaibu\666\62.bat
タブタブタブタブタブタブ分類II-7
タブタブタブタブタブタブタブ外変名7-1タブC:\jww\gaibu\777\71.bat
タブタブタブタブタブタブタブ分類II-8
タブタブタブタブタブタブタブタブ外変名8-1タブC:\jww\gaibu\888\81.bat
タブタブタブタブタブタブタブ外変名7-2タブC:\jww\gaibu\777\72.bat
タブタブタブタブタブタブ外変名6-3タブC:\jww\gaibu\666\63.bat
タブタブタブタブタブ外変名5-3タブC:\jww\gaibu\555\53.bat
タブタブタブタブ分類II-52
タブタブタブタブタブ外変名51-3タブC:\jww\gaibu\555\53.bat

標準
タブ三斜タブC:\JWW\JWW_SMPL.BAT
タブ面積計算タブC:\JWW\ZAHYOU.BAT
タブ天空タブC:\JWW\TENHYOU.BAT

自作
タブJwfSwitcherタブc:\jww\gaihen\my\JwfSwitcher.bat
タブ線色変更
タブタブ線色抽出タブc:\jww\gaihen\my\線色抽出.bat
タブタブ線色変更タブc:\jww\gaihen\my\線色変更.bat
タブ連続印刷タブc:\jww\gaihen\my\連続印刷.bat


※ コードは、下記です。

今回ももし、1行目に
>意味不明な;
が入ってしまいましたら、削除してください。

もしよろしければ、試してやってください。
よろしくお願い致します。


↓batMenuText整形2.bat (この下から)

@findstr /v "^@"; %0 | jgawk -f - batPATH.txt>てすとbatMenu.txt & goto:eof
BEGIN{aflg=0;OFS=","}
{
  if($0~/^$/){strflg=1;next}
  bflg=aflg
  aflg=tab_check()
  if(aflg=="×"){
    print(NR "行目を確認して下さい")
    endflg=1;exit
  }
  $1=$1
  if(bflg<aflg){$1="{" $1;cflg+=1}
  else if(bflg>aflg){
    balance=bflg-aflg
    bracket_str=bracket_repeat("}",balance)
    bstr1=bstr1 bracket_str
    cflg-=balance
  }
  if(length(bstr1)>0){
    print bstr1,bstr2
    if(strflg==1){printf "\n"}
  }
  bstr1=$1;bstr2=$2;strflg=0
}
END{
  if(endflg==0){
    if(cflg>0){
      bracket_str=bracket_repeat("}",cflg)
      print bstr1 bracket_str,bstr2
    }
    else{print bstr1,bstr2}
  }
}
function tab_check( i,mid_str){
  for(i=1;i<=length($0);i++){
    mid_str=substr($0,i,1)
    if(mid_str!="\t"){return i-1}
  }
  return "×"
}
function bracket_repeat(str,num, i,brep){
  for(i=1;i<=num;i++){brep=brep str}
  return brep
}

 ───────────────────────────────────────  ■題名 : Re(6):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/31(金) 10:24  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

度々、すみません。
スクリプトを理解できるレベルではありませんが、
構文を簡略化されたのでしょうね?。

";"を削除し、動作確認しました。

ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(7):外部変形の利用について  ■名前 : いっち  ■日付 : 15/07/31(金) 11:09  -------------------------------------------------------------------------
   ▼R.Nさん:

> ";"を削除し、動作確認しました。
ご確認ありがとうございます。

> 構文を簡略化されたのでしょうね?。
その通りです。
関数(function)を用いる事にしました。
行っていることは、これまでのコードと同じです。

> スクリプトを理解できるレベル
今回書いたスクリプトをもし読んで頂けるなら、
たったひとつの特徴だけ、あらかじめお話しさせて頂きます。

printで書き出しているのは、現在読みこんでいる行ではなく、
ひとつ前の行を書きだしています。
そのようにしないと、 "}" を入れるのが
(私には)難しかったからです。

その為、最後の行のprintは、スクリプトのENDの部分で
行っています。

>意味不明な;
については教えて頂かなかったら、気が付きませんでした。
動作確認もして頂いて、ありがとうございました。

 ───────────────────────────────────────  ■題名 : Re(8):外部変形の利用について  ■名前 : R.N  ■日付 : 15/07/31(金) 12:16  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

>関数(function)を用いる事にしました。
>行っていることは、これまでのコードと同じです。

>printで書き出しているのは、現在読みこんでいる行ではなく、
>ひとつ前の行を書きだしています。
>そのようにしないと、 "}" を入れるのが
>(私には)難しかったからです。
>
>その為、最後の行のprintは、スクリプトのENDの部分で
>行っています。

できる方は、ポケットの数次第で、色々な手法を用いることができるのでしょうね。
理解できるように、少しづつ努力ですね。
ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(6):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/03(月) 8:03  -------------------------------------------------------------------------
   こんにちは。

下記
> 今回ももし、1行目に
> >意味不明な;
> が入ってしまいましたら、削除してください。
について、

Lite & Seen Liteさんのホームページ
http://sky.geocities.jp/lite_and_seen_lite/


を改めて見てみたら
掲示板に貼ってもバケそうもない記述方法があることに
今さらながら気づきました。

申し訳ありませんが、本当にバケないかテストさせてください。
尚下記のコードは、batPATH.TXTにいくつ登録したかを確認するだけです。

※ batPATH.TXTの記述例は下記です。

<再>
分類I
タブ分類II-1
タブタブ外変名1タブC:\jww\gaibu\111\1.bat
タブ分類II-2
タブタブ外変名2タブC:\jww\gaibu\222\2.bat
タブタブ分類II-3
タブタブタブ外変名3-1タブC:\jww\gaibu\333\31.bat
タブタブタブ外変名3-2タブC:\jww\gaibu\333\32.bat
タブタブタブ分類II-4
タブタブタブタブ外変名4-1タブC:\jww\gaibu\444\41.bat
タブタブタブタブ外変名4-2タブC:\jww\gaibu\444\42.bat
(以降省略)

↓ 登録数の確認.bat (この下から)

#& cls & jgawk -f %0 batPATH.TXT & pause & goto:eof
BEGIN{IGNORECASE=1}
$0~/^[^\t]+/{
 if(NR==1 && $0~/^ *<再> *$/){next}
 else if(NF==1){title=$1}
 else{title="区分無し"}
 if(strlen<length(title)){strlen=length(title)}
 if(!(title in head)){list[++n]=title}
}
{
 if($NF~/\.bat *$/){
  head[title]+=1
  sum+=1
  if(numlen2<length(head[title])){numlen2=length(head[title])}
 }
}
END{
sline=\
"------------------------------------------------------------"
wline=\
"============================================================"
 numlen1=length(n)
 base_str="[] の外変は個です。"
 rcnt=numlen1+strlen+numlen2+length(base_str)+2
 print substr(wline,1,rcnt)
 print "※ 登録外変数の確認"
 print substr(wline,1,rcnt)
 for(i=1;i<=n;i++){
  printf("[%0*d] %-*sの外変は%0*d個です。\n",
   numlen1,i,strlen,list[i],numlen2,head[list[i]])
  print substr(sline,1,rcnt)
 }
 print "合計 " sum " 個です。\n"
}

 ───────────────────────────────────────  ■題名 : Re(7):外部変形の利用について  ■名前 : R.N  ■日付 : 15/08/03(月) 19:21  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

実行してみましたが、"CLS"の後、止まってるように見えますが?
DOS窓は、何も表示されず、最初のカーソル点滅だけです。
文字バケテストですのでーーーー自身で確認したかったのが主眼でしょうが

 ───────────────────────────────────────  ■題名 : Re(8):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/03(月) 22:18  -------------------------------------------------------------------------
   ▼R.Nさん:

こんにちは。

> 文字バケテストですのでーーーー自身で確認したかったのが主眼でしょうが
外部変形の登録数が少しづつ増えて行くと、どのくらい登録したのか、
自分自身が知りたくなって、作成したスクリプトです。
もし、試用して頂けるならと思います。

再現できるかどうかやってみましたが、もし、batPATH.TXTが無かったとしても
> 実行してみましたが、"CLS"の後、止まってるように見えますが?
> DOS窓は、何も表示されず、最初のカーソル点滅だけです。
とはなりませんでした。
なぜかは解りませんが、下記の方法をお試しください。

1.awkファイルとbatファイルを分ける。
 そして、batを実行します。

「test.batの記述内容」
jgawk -f test.awk batPATH.TXT & pause

「test.awkの記述内容」
もともとの登録数の確認.batの2行目以降の内容全てです。

これで test.bat を実行できるでしょうか。
この方法は使い勝手も画面表示もいまひとつですが、
一番確実な方法です。


2.上記の方法が実行出来た場合には、つぎの方法もあります。
 sedを用います。
 但し最近のsedを用いると、日本語が文字化けしてしまうので、
 下記のOnigsedを用います。

Onigsed 2009年10月31日バージョン
http://www.kt.rim.or.jp/~kbk/sed/
onigsed-20091031.zip

上記を解凍したらその中のonigsed.exeをこのバッチファイルと同じフォルダーに入れるか、
あるいは、パスの通ったフォルダーに入れます。
Onigsedを用いた記述方法は、下記です。

↓登録数の確認2.bat (この下から)

@echo off
onigsed -n "/^#script/,/^#end/p" %0|jgawk -f - batPATH.txt & pause & goto:eof
#script
BEGIN{IGNORECASE=1}
$0~/^[^\t]+/{
 if(NR==1 && $0~/^ *<再> *$/){next}
 else if(NF==1){title=$1}
 else{title="区分無し"}
 if(strlen<length(title)){strlen=length(title)}
 if(!(title in head)){list[++n]=title}
}
{
 if($NF~/\.bat *$/){
  head[title]+=1
  sum+=1
  if(numlen2<length(head[title])){numlen2=length(head[title])}
 }
}
END{
sline=\
"------------------------------------------------------------"
wline=\
"============================================================"
 numlen1=length(n)
 base_str="[] の外変は個です。"
 rcnt=numlen1+strlen+numlen2+length(base_str)+2
 print substr(wline,1,rcnt)
 print "※ 登録外変数の確認"
 print substr(wline,1,rcnt)
 for(i=1;i<=n;i++){
  printf("[%0*d] %-*sの外変は%0*d個です。\n",
   numlen1,i,strlen,list[i],numlen2,head[list[i]])
  print substr(sline,1,rcnt)
 }
 print "合計 " sum " 個です。\n"
}
#end

 ───────────────────────────────────────  ■題名 : Re(9):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/03(月) 23:01  -------------------------------------------------------------------------
   少し訂正します。

> 1.awkファイルとbatファイルを分ける。
>  そして、batを実行します。
>
> 「test.batの記述内容」
> jgawk -f test.awk batPATH.TXT & pause
>
> 「test.awkの記述内容」
> もともとの登録数の確認.batの2行目以降の内容全てです。
>
> これで test.bat を実行できるでしょうか。
> この方法は使い勝手も画面表示もいまひとつですが、
> 一番確実な方法です。

すみません。
「test.batの記述内容」

@echo off
jgawk -f test.awk batPATH.TXT & pause

とすれば、画面表示は問題ありません。

 ───────────────────────────────────────  ■題名 : Re(10):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/03(月) 23:32  -------------------------------------------------------------------------
   > 実行してみましたが、"CLS"の後、止まってるように見えますが?
> DOS窓は、何も表示されず、最初のカーソル点滅だけです。


再現できました。
しかし、そのミスをR.Nさんがされたとは思えないのですが。

下記で再現できました。
1行目を
↓ 登録数の確認.bat (この下から)

2行目を
#& cls & jgawk -f %0 batPATH.TXT & pause & goto:eof

とすると再現できます。


あるいは、

1行目の先頭に全角スペースを入れた場合
 #& cls & jgawk -f %0 batPATH.TXT & pause & goto:eof

再現できます。

後は、もう少し考えないと解りません。

 ───────────────────────────────────────  ■題名 : Re(11):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/03(月) 23:55  -------------------------------------------------------------------------
   後再現できたのは、

掲示板にコードを貼ると、半角スペース2つが、
全角スペース1つになってしまいますが、
それの修正もれが1か所でもあると再現するようです。

しかし、R.Nさんがこのミスをしたとは、やはり思えません。

 ───────────────────────────────────────  ■題名 : Re(9):外部変形の利用について  ■名前 : R.N  ■日付 : 15/08/04(火) 10:21  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

>> 文字バケテストですのでーーーー自身で確認したかったのが主眼でしょうが
>外部変形の登録数が少しづつ増えて行くと、どのくらい登録したのか、
>自分自身が知りたくなって、作成したスクリプトです。
>もし、試用して頂けるならと思います。

bat・スクリプトは、有難く参考にさせて頂いてます。

>再現できるかどうかやってみましたが、もし、batPATH.TXTが無かったとしても
>> 実行してみましたが、"CLS"の後、止まってるように見えますが?
>> DOS窓は、何も表示されず、最初のカーソル点滅だけです。
>とはなりませんでした。
>なぜかは解りませんが、下記の方法をお試しください。

色々試してみたのですが、ダメでした。エラーが表示されると解決できるのでしょうが
(#& cls & を削除しても)

>1.awkファイルとbatファイルを分ける。
> そして、batを実行します。
>
>「test.batの記述内容」
>jgawk -f test.awk batPATH.TXT & pause
>
>「test.awkの記述内容」
>もともとの登録数の確認.batの2行目以降の内容全てです。
>
>これで test.bat を実行できるでしょうか。
>この方法は使い勝手も画面表示もいまひとつですが、
>一番確実な方法です。

こちらは、問題なく動作するのですが、

>2.上記の方法が実行出来た場合には、つぎの方法もあります。
> sedを用います。
> 但し最近のsedを用いると、日本語が文字化けしてしまうので、
> 下記のOnigsedを用います。
>
>Onigsed 2009年10月31日バージョン
>http://www.kt.rim.or.jp/~kbk/sed/
>onigsed-20091031.zip
>
>上記を解凍したらその中のonigsed.exeをこのバッチファイルと同じフォルダーに入れるか、
>あるいは、パスの通ったフォルダーに入れます。
>Onigsedを用いた記述方法は、下記です。
>
>↓登録数の確認2.bat (この下から)
>
>@echo off
>onigsed -n "/^#script/,/^#end/p" %0|jgawk -f - batPATH.txt & pause & goto:eof
>#script
>BEGIN{IGNORECASE=1}
>$0~/^[^\t]+/{
> if(NR==1 && $0~/^ *<再> *$/){next}
> else if(NF==1){title=$1}
> else{title="区分無し"}
> if(strlen<length(title)){strlen=length(title)}
> if(!(title in head)){list[++n]=title}
>}
>{
> if($NF~/\.bat *$/){
>  head[title]+=1
>  sum+=1
>  if(numlen2<length(head[title])){numlen2=length(head[title])}
> }
>}
>END{
>sline=\
>"------------------------------------------------------------"
>wline=\
>"============================================================"
> numlen1=length(n)
> base_str="[] の外変は個です。"
> rcnt=numlen1+strlen+numlen2+length(base_str)+2
> print substr(wline,1,rcnt)
> print "※ 登録外変数の確認"
> print substr(wline,1,rcnt)
> for(i=1;i<=n;i++){
>  printf("[%0*d] %-*sの外変は%0*d個です。\n",
>   numlen1,i,strlen,list[i],numlen2,head[list[i]])
>  print substr(sline,1,rcnt)
> }
> print "合計 " sum " 個です。\n"
>}
>#end

まだ、こちらまで手が回らない状況です。
色々と、ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re(10):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/04(火) 14:49  -------------------------------------------------------------------------
   ▼R.Nさん:

こんにちは。

下記でも出来るみたいです。
以前、Lite & Seen Liteさんに教えて頂いた方法を
元に書いてみただけですけれども。

これが一番簡単かも?

1行目 @echo off
2行目 more +2 %~f0|jgawk -f - batPATH.txt & pause & goto:eof
3行目 BEGIN{IGNORECASE=1}
4行目 $0~/^[^\t]+/{
(以降省略)

つまり、

@echo off
more +2 %~f0|jgawk -f - batPATH.txt & pause & goto:eof
BEGIN{IGNORECASE=1}
$0~/^[^\t]+/{
 if(NR==1 && $0~/^ *<再> *$/){next}
 
 と記述します。

 ───────────────────────────────────────  ■題名 : Re(11):外部変形の利用について  ■名前 : R.N  ■日付 : 15/08/04(火) 21:49  -------------------------------------------------------------------------
   ▼いっちさん:こんにちは、

今度は、素直に動いてくれました。
gawkm115を使ってて、System32に置いてるのですが、不思議です。

すみません。

gawk-4.1.3-w32も入れてみたのですが、新しいエラーが出て、また、戻してしまいました。
動作する外変もあるのですが---?

 ───────────────────────────────────────  ■題名 : Re(12):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/04(火) 22:10  -------------------------------------------------------------------------
   ▼R.Nさん:

こんにちは。

> gawk-4.1.3-w32も入れてみたのですが、
> 新しいエラーが出て、また、戻してしまいました。
> 動作する外変もあるのですが---?

私は、そのバージョンは利用した事は無いですが、

gawk-4.1.0-bin.zipなら
https://code.google.com/p/gnu-on-windows/downloads/list
からダウンロードして、ファイル名をgawk4.exeにリネームし
使えるようにしています。

全角文字を1文字目にしてprintする場合の注意事項
(↑これは、Lite & Seen Liteさんのホームページに書かれていました。)
さえ守れば、エラーがでることは無いのですが、

今回の「登録数の確認.bat」は、明らかに
> gawkm115
の仕様で作ってしまっていますので、

> gawk-4.1.0
で出力してみると、ちょっとがっかりした結果になってしまいます。

> gawkm115
は、仕様が解りやすいですね。

 ───────────────────────────────────────  ■題名 : Re(13):外部変形の利用について  ■名前 : R.N  ■日付 : 15/08/04(火) 23:13  -------------------------------------------------------------------------
   ▼いっちさん:

>全角文字を1文字目にしてprintする場合の注意事項
>(↑これは、Lite & Seen Liteさんのホームページに書かれていました。)
>さえ守れば、エラーがでることは無いのですが、

そう言われてみると、
print to "standard output" failed (Arg list too long)
のエラーが出てました。

余談ですが、gawk-4.1.3-w32のgawk.exe(jgawk.exe)をSystem32にいれて、実行すると、"DLL"がないとエラーが出たので、付属の"DLL"をSystem32に入れたのですが、"ダメ"↓?で、
環境変数で"DLL"にPATHを通したら"Ok"でした?。

 ───────────────────────────────────────  ■題名 : Re(14):外部変形の利用について  ■名前 : LA  ■日付 : 15/08/04(火) 23:50  -------------------------------------------------------------------------
   ▼R.Nさん:
こんにちは


>余談ですが、gawk-4.1.3-w32のgawk.exe(jgawk.exe)をSystem32にいれて、実行すると、"DLL"がないとエラーが出たので、付属の"DLL"をSystem32に入れたのですが、"ダメ"↓?で、
>環境変数で"DLL"にPATHを通したら"Ok"でした?。

OSが64bitの様で、gawk自体は32bitなので、System32 ではなく、SysWOW64 に入れた方がいいかもしれません。
64bitOS上で、32bitアプリがSystem32にアクセスしようとすると、SysWOW64にリダイレクトされます。

試してみたところ、System32では同じくDLLが見つからない旨のエラーが出ましたが、SysWOW64ではエラーが出ませんでした。

 ───────────────────────────────────────  ■題名 : Re(15):外部変形の利用について  ■名前 : R.N  ■日付 : 15/08/05(水) 8:13  -------------------------------------------------------------------------
   ▼LAさん:こんにちは、

>OSが64bitの様で、gawk自体は32bitなので、System32 ではなく、SysWOW64 に入れた方がいいかもしれません。
>64bitOS上で、32bitアプリがSystem32にアクセスしようとすると、SysWOW64にリダイレクトされます。

検証までして頂き、ありがとうございます。
それなりの理由はあるのでしょうが、転送するのなら、System32は必要ないのでは、と思ってしまいました。

 ───────────────────────────────────────  ■題名 : Re(15):外部変形の利用について  ■名前 : R.N  ■日付 : 15/08/05(水) 17:14  -------------------------------------------------------------------------
   ▼LAさん:

>それなりの理由はあるのでしょうが、転送するのなら、System32は必要ないのでは、と思ってしまいました。

ちょっと調べてみたら、謎が解けました。
http://piyopiyocs.blog115.fc2.com/blog-entry-869.html

 ───────────────────────────────────────  ■題名 : Re(13):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/05(水) 14:52  -------------------------------------------------------------------------
   こんにちは。

> > gawk-4.1.0
> で出力してみると、ちょっとがっかりした結果になってしまいます。
と自分で書いておきながら、本当だろうかと少し調べて試してみました。

> gawk-4.1.3-w32
でやってみました。

ちゃんと出力するような気がします。
気のせいかもしれませんけれども。

※gawk.exeは、gawk4.exeにリネームしています。

↓ 登録数の確認_gawk4.bat(この下から)

@echo off
more +2 %~f0|gawk4 --characters-as-bytes -f - batPATH.txt & pause & goto:eof
BEGIN{IGNORECASE=1}
$0~/^[^\t]+/{
 if(NR==1 && $0~/^ *<再> *$/){next}
 else if(NF==1){title=$1}
 else{title="区分無し"}
 if(strlen<length(title)){strlen=length(title)}
 if(!(title in head)){list[++n]=title}
}
{
 if($NF~/\.bat *$/){
  head[title]+=1
  sum+=1
  if(numlen2<length(head[title])){numlen2=length(head[title])}
 }
}
END{
sline=\
"------------------------------------------------------------"
wline=\
"============================================================"
 numlen1=length(n)
 base_str="[] の外変は個です。"
 rcnt=numlen1+strlen+numlen2+length(base_str)+2
 print substr(wline,1,rcnt)
 print "\b※ 登録外変数の確認"
 print substr(wline,1,rcnt)
 for(i=1;i<=n;i++){
  printf("[%0*d] %-*sの外変は%0*d個です。\n",
   numlen1,i,strlen,list[i],numlen2,head[list[i]])
  print substr(sline,1,rcnt)
 }
 print "\b合計 " sum " 個です。\n"
}

 ───────────────────────────────────────  ■題名 : Re(14):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/05(水) 20:21  -------------------------------------------------------------------------
   訂正させてください。

--characters-as-bytes を用いている為、
> print "\b※ 登録外変数の確認"
> print "\b合計 " sum " 個です。\n"
の\bは、不要でした。

Lite & Seen Liteさんのページを見ていて気が付きました。
何度も投稿してすみません。

 ───────────────────────────────────────  ■題名 : Re(15):外部変形の利用について  ■名前 : LA  ■日付 : 15/08/06(木) 10:17  -------------------------------------------------------------------------
   ▼いっちさん:
こんにちは


いろいろと、参考になります。ありがとうございます。


>--characters-as-bytes を用いている為、
ここで、ダメ文字の問題が気になりました。
AWKでは、文字列中の\(:0x5C)が特殊の意味を持つので、2byte文字をばらしてそれが出てくるような文字(Shit-JISで、ソIV圭構十表申貼能予禄暴 etc)で、問題が起る可能性があります。

という事で、gawk4.1.3で、 少し試してみました。


変更箇所:
登録数の確認_gawk4.bat:27>
s="※ 登録外変数の確認表です。"
print s
batPATH.txt:2>
分類IXnI

結果:
gawk4: -:25: warning: escape sequence `\・ treated as plain `・
===============================
※ 登録外変数の確認表ナす。
===============================
[1] 分類IXnIの外変は6個です。
-------------------------------
合計 6 個です。

となり、
スクリプト内の記述では、警告が出、ダメ文字の影響を受けていますが、
外部ファイルで読込んだ場合は、ダメ文字の影響を受けていません。

スクリプト内だけなら、その文字を使わないようにすればいいので、--characters-as-bytesでも、わりと問題なしの様ですね。

 ───────────────────────────────────────  ■題名 : Re(16):外部変形の利用について  ■名前 : いっち  ■日付 : 15/08/06(木) 10:56  -------------------------------------------------------------------------
   ▼LAさん:

こんにちは。

> --characters-as-bytesでも、わりと問題なしの様ですね。

ご確認ありがとうございます。

スクリプト内でダメ文字を使いたい場合、どうしたら効率よく
ダメ文字をエスケープできるか考えてみました。
テラパッドツールを利用させて頂くのが、一番簡単な方法の
ような気がしています。

http://harpy.jp/Tategoto/menu.html
の中の
http://harpy.jp/Tategoto/terapad/
にあるTpAddYenです。

テラパッドというエディタは、普段はあまり使わないのですが、
たまに便利な時あるんですね。

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