2009/12/12作成
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
MQサーバーとの疎通サンプル作成手順
○前提
準備として、下のいずれかのユーザーを用意する。
①グループ「mqm」に所属するユーザー
②グループ「Administrators」に所属するローカルユーザー
ActiveDirectoryで管理されているドメインユーザーの場合、
①のユーザーを使用するには、ドメインユーザーの設定を修正する必要がある。
ただしActiveDirectoryを導入しているのは、規模の大きな会社なので、
変更するための承認フローが存在するはず。
承認には運用上の理由が必要となり、「開発のため」という理由では承認が下りる可能性が低い。
ということで、②のユーザーを想定した手順とする。
○MQの準備
MQエクスプローラーを「②のローカルユーザー」で起動する。
「ヘルプメニュー」>「ヘルプ目次」をクリックする。
「WebSphere MQチュートリアル」>「ローカル・キューにメッセージを送信する」の作業を行う。
○サンプルプログラムの作成
Visual Studioを「②のローカルユーザー」で起動する。
コンソールアプリケーションのプロジェクトを作成する。
以下のソースを貼り付けて実行する。
Imports IBM.WMQ
Imports System.Text
Module Module1
Const HOST_NAME As String = "localhost"
Const PORT As Integer= 1414
Const QUEUE_MANAGER_NAME = "QM_APPLE"
Const CHANNEL_NAME = "QM_ORANGE.QM_APPLE"
Const QUEUE_NAME = "Q1"
Const MESSAGE = "Hello World."
Sub Main()
' キューへの接続情報
Dim properties As New Hashtable()
properties.Add(MQC.HOST_NAME_PROPERTY, HOST_NAME)
properties.Add(MQC.PORT_PROPERTY, PORT)
properties.Add(MQC.CHANNEL_PROPERTY, CHANNEL_NAME)
Try
Dim qMan = New MQQueueManager(QUEUE_MANAGER_NAME)
Dim openOptions As Integer = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_OUTPUT
Dim queue = qMan.AccessQueue(QUEUE_NAME, openOptions)
' 送信処理
Dim sendMessage = Encoding.UTF8.GetBytes(MESSAGE & Date.Now.ToString())
Dim sendMQMessage As MQMessage = New MQMessage()
sendMQMessage.Write(sendMessage)
queue.Put(sendMQMessage)
' 受信処理
Dim receiveMQMessage As MQMessage = New MQMessage()
queue.Get(receiveMQMessage)
Dim receiveMessage = Encoding.UTF8.GetString(receiveMQMessage.ReadBytes(receiveMQMessage.MessageLength))
Console.WriteLine(receiveMessage)
Catch e As Exception
' Do something
End Try
End Sub
End Module
準備として、下のいずれかのユーザーを用意する。
①グループ「mqm」に所属するユーザー
②グループ「Administrators」に所属するローカルユーザー
ActiveDirectoryで管理されているドメインユーザーの場合、
①のユーザーを使用するには、ドメインユーザーの設定を修正する必要がある。
ただしActiveDirectoryを導入しているのは、規模の大きな会社なので、
変更するための承認フローが存在するはず。
承認には運用上の理由が必要となり、「開発のため」という理由では承認が下りる可能性が低い。
ということで、②のユーザーを想定した手順とする。
○MQの準備
MQエクスプローラーを「②のローカルユーザー」で起動する。
「ヘルプメニュー」>「ヘルプ目次」をクリックする。
「WebSphere MQチュートリアル」>「ローカル・キューにメッセージを送信する」の作業を行う。
○サンプルプログラムの作成
Visual Studioを「②のローカルユーザー」で起動する。
コンソールアプリケーションのプロジェクトを作成する。
以下のソースを貼り付けて実行する。
Imports IBM.WMQ
Imports System.Text
Module Module1
Const HOST_NAME As String = "localhost"
Const PORT As Integer= 1414
Const QUEUE_MANAGER_NAME = "QM_APPLE"
Const CHANNEL_NAME = "QM_ORANGE.QM_APPLE"
Const QUEUE_NAME = "Q1"
Const MESSAGE = "Hello World."
Sub Main()
' キューへの接続情報
Dim properties As New Hashtable()
properties.Add(MQC.HOST_NAME_PROPERTY, HOST_NAME)
properties.Add(MQC.PORT_PROPERTY, PORT)
properties.Add(MQC.CHANNEL_PROPERTY, CHANNEL_NAME)
Try
Dim qMan = New MQQueueManager(QUEUE_MANAGER_NAME)
Dim openOptions As Integer = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_OUTPUT
Dim queue = qMan.AccessQueue(QUEUE_NAME, openOptions)
' 送信処理
Dim sendMessage = Encoding.UTF8.GetBytes(MESSAGE & Date.Now.ToString())
Dim sendMQMessage As MQMessage = New MQMessage()
sendMQMessage.Write(sendMessage)
queue.Put(sendMQMessage)
' 受信処理
Dim receiveMQMessage As MQMessage = New MQMessage()
queue.Get(receiveMQMessage)
Dim receiveMessage = Encoding.UTF8.GetString(receiveMQMessage.ReadBytes(receiveMQMessage.MessageLength))
Console.WriteLine(receiveMessage)
Catch e As Exception
' Do something
End Try
End Sub
End Module
PR
BCPコマンド
コマンドプロンプトのFOR
@ECHO OFF
ECHO カレントディレクトリ直下のファイル名(拡張子あり)を全て列挙する
ECHO FOR %%A IN (*) DO ECHO %%~nxA
FOR %%A IN (*) DO ECHO %%~nxA
ECHO.
ECHO.
ECHO カレントディレクトリ直下のファイル名(拡張子なし)を全て列挙する
ECHO FOR %%A IN (*) DO ECHO %%~nA
FOR %%A IN (*) DO ECHO %%~nA
ECHO.
ECHO.
ECHO カレントディレクトリ直下のファイルパスを全て列挙する
ECHO FOR %%A IN (*) DO ECHO %%~fA
FOR %%A IN (*) DO ECHO %%~fA
ECHO.
ECHO.
ECHO カレントディレクトリ直下のディレクトリ名を全て列挙する
ECHO FOR /D %%A IN (*) DO ECHO %%A
FOR /D %%A IN (*) DO ECHO %%A
ECHO.
ECHO.
ECHO カレントディレクトリ直下のディレクトリパスを全て列挙する
ECHO FOR /D %%A IN (*) DO ECHO %%~fA
FOR /D %%A IN (*) DO ECHO %%~fA
ECHO.
ECHO.
ECHO カレントディレクトリ配下のファイル名(拡張子あり)を全て列挙する
ECHO FOR /R %%A IN (*) DO ECHO %%~nxA
FOR /R %%A IN (*) DO ECHO %%~nxA
ECHO.
ECHO.
ECHO カレントディレクトリ配下のファイル名(拡張子なし)を全て列挙する
ECHO FOR /R %%A IN (*) DO ECHO %%~nA
FOR /R %%A IN (*) DO ECHO %%~nA
ECHO.
ECHO.
ECHO カレントディレクトリ配下のファイルパスを全て列挙する
ECHO FOR /R %%A IN (*) DO ECHO %%~fA
FOR /R %%A IN (*) DO ECHO %%~fA
ECHO.
ECHO.
ECHO カレントディレクトリ直下のconfig.txtファイルの内容を抽出する
ECHO #で始まる行をコメント行とする
ECHO 「,」、「半角スペース」を区切り文字とする
ECHO %%Aには2盤目のトークンが設定される
ECHO %%Bには3盤目のトークンが設定される
ECHO %%Cには3盤目のトークン以降の文字列が区切られずに設定される
ECHO %~dp0config.txtの内容
ECHO ==
type config.txt
ECHO.
ECHO ==
ECHO FOR /F "eol=# tokens=2,3* delims=, " %%A IN (config.txt) DO ECHO (1)=[%%A] (2)=[%%B] (3)=[%%C]
FOR /F "eol=# tokens=2,3* delims=, " %%A IN (config.txt) DO ECHO (1)=[%%A] (2)=[%%B] (3)=[%%C]
ECHO.
ECHO.
ECHO コマンドの結果を入力値として使用する
ECHO usebackqオプションを設定し、一重引用符で囲むことでコマンド実行を有効にする
ECHO DIRコマンドは以下のオプションを設定している
ECHO /b:ファイル名のみ表示する
ECHO /a:ディレクトリ、システムファイルを除外する
ECHO /o:名前で昇順ソートする
ECHO FOR /F "usebackq" %%A IN (`DIR ".\Root\Temp" /b /a:-d-s /o:n`) DO ECHO %%A
FOR /F "usebackq" %%A IN (`DIR ".\Root\Temp" /b /a:-d-s /o:n`) DO ECHO %%A
ECHO.
ECHO.
PAUSE
ファイルはこちら
[サクラエディタ]行削除マクロ
メニューウィンドウ

置換文字列入力ウィンドウ

拡張子が.vbsのファイルに、以下のソースコードを保存する
' マクロの中断処理ができないため、サブルーチン化で対処
main()
sub main()
set shell = CreateObject("WScript.Shell")
' メニュー情報
const REPLACE_SYMBOL = "REPLACE_SYMBOL"
dim menu(7, 2)
menu(1, 1) = "指定文字列を含む行"
menu(1, 2) = ".*" & REPLACE_SYMBOL & ".*(\r\n|\n|.*)"
menu(2, 1) = "指定文字列を含まない行"
menu(2, 2) = "^(?!.*" & REPLACE_SYMBOL & ").*(\r\n|\n|.*)"
menu(3, 1) = "指定文字列で始まる行"
menu(3, 2) = "^" & REPLACE_SYMBOL & ".*(\r\n|\n|.*)"
menu(4, 1) = "指定文字列で始まらない行"
menu(4, 2) = "^(?!" & REPLACE_SYMBOL & ").*(\r\n|\n|.*)"
menu(5, 1) = "指定文字列で終わる行"
menu(5, 2) = ".*" & REPLACE_SYMBOL & "$(\r\n|\n|.*)"
menu(6, 1) = "指定文字列で終わらない行"
menu(6, 2) = "^(?!.*" & REPLACE_SYMBOL & "$).*(\r\n|\n|.*)"
menu(7, 1) = "空行"
menu(7, 2) = "^(\r\n|\n)"
' メッセージ生成
message = ""
menuSize = UBound(menu)
for i = 1 to menuSize
message = message & i & ":" & menu(i, 1) & vbCrLf
next
' 処理番号の入力プロンプト
str = inputbox(message, "指定条件の行削除")
' 入力がない場合、終了
if str = "" then
exit sub
end if
' 数値でない入力の場合、ダイアログを表示し終了
if not isNumeric(str) then
MsgBox "数値を入力してください。"
exit sub
end if
' 無効な番号入力の場合、ダイアログを表示し終了
inputNumber = CInt(str)
if inputNumber < 0 or menuSize < inputNumber then
MsgBox "表示された番号から選択してください。"
exit sub
end if
if inputNumber <> 7 then
' 条件文字列の入力プロンプト
str = inputbox("条件文字列を正規表現形式で入力してください。", menu(inputNumber, 1))
' 入力がない場合、終了
if str = "" then
exit sub
end if
end if
' 正規表現を実行
regex = menu(inputNumber, 2)
regex = replace(regex, REPLACE_SYMBOL, str)
Editor.ReplaceAll regex, "", 156
end sub
置換文字列入力ウィンドウ
拡張子が.vbsのファイルに、以下のソースコードを保存する
' マクロの中断処理ができないため、サブルーチン化で対処
main()
sub main()
set shell = CreateObject("WScript.Shell")
' メニュー情報
const REPLACE_SYMBOL = "REPLACE_SYMBOL"
dim menu(7, 2)
menu(1, 1) = "指定文字列を含む行"
menu(1, 2) = ".*" & REPLACE_SYMBOL & ".*(\r\n|\n|.*)"
menu(2, 1) = "指定文字列を含まない行"
menu(2, 2) = "^(?!.*" & REPLACE_SYMBOL & ").*(\r\n|\n|.*)"
menu(3, 1) = "指定文字列で始まる行"
menu(3, 2) = "^" & REPLACE_SYMBOL & ".*(\r\n|\n|.*)"
menu(4, 1) = "指定文字列で始まらない行"
menu(4, 2) = "^(?!" & REPLACE_SYMBOL & ").*(\r\n|\n|.*)"
menu(5, 1) = "指定文字列で終わる行"
menu(5, 2) = ".*" & REPLACE_SYMBOL & "$(\r\n|\n|.*)"
menu(6, 1) = "指定文字列で終わらない行"
menu(6, 2) = "^(?!.*" & REPLACE_SYMBOL & "$).*(\r\n|\n|.*)"
menu(7, 1) = "空行"
menu(7, 2) = "^(\r\n|\n)"
' メッセージ生成
message = ""
menuSize = UBound(menu)
for i = 1 to menuSize
message = message & i & ":" & menu(i, 1) & vbCrLf
next
' 処理番号の入力プロンプト
str = inputbox(message, "指定条件の行削除")
' 入力がない場合、終了
if str = "" then
exit sub
end if
' 数値でない入力の場合、ダイアログを表示し終了
if not isNumeric(str) then
MsgBox "数値を入力してください。"
exit sub
end if
' 無効な番号入力の場合、ダイアログを表示し終了
inputNumber = CInt(str)
if inputNumber < 0 or menuSize < inputNumber then
MsgBox "表示された番号から選択してください。"
exit sub
end if
if inputNumber <> 7 then
' 条件文字列の入力プロンプト
str = inputbox("条件文字列を正規表現形式で入力してください。", menu(inputNumber, 1))
' 入力がない場合、終了
if str = "" then
exit sub
end if
end if
' 正規表現を実行
regex = menu(inputNumber, 2)
regex = replace(regex, REPLACE_SYMBOL, str)
Editor.ReplaceAll regex, "", 156
end sub
新着記事
2013 - 06 - 27
2013 - 06 - 27
2013 - 06 - 19
2013 - 01 - 11
2013 - 01 - 11
カテゴリー
アーカイブ
検索
新着コメント
ブックマーク