忍者ブログ
2009/12/12作成
  • « 2024.05.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • »
[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

PR
BCPコマンド
SQLServerのデータをインポート、エクスポートをしたい!って時に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

[.NET].NETでサポートされたプログラム言語のソースコード変換サイト




#サイト変換
1developer FussionC#⇒VB
2VB⇒C#
Powered by [PR]
/ Design by sky hine / PR:忍者ブログ