SAK 図書館
VB テクニック編3 - コマンドパラメタ取得、パス切り出し、半角変換
■SAK 関数利用規程 ・テクニック編で紹介する関数は、私こと Y.SAK の開発関数である。 ・著作権明示部分の改編は認めない。 ・個人、企業がこれらの関数を使用したり、一部を使用して新たなシステムや プログラムを開発することは自由です。 ・但し、これらの関数を一部でも使用しているソフトウェアをシェアウェア、 その他有償プロダクトとして配布・販売するには、私の許可が必要です。 (無償のフリーソフトウェアなら、自由に配布しても良い。) ・これらの関数を使用して発生した、いかなる形での損害も私こと Y.SAK は 賠償しません。 ■コマンドラインパラメタ取得(コマンドライン引数取得) 【使い方】 dim i as integer dim cmdline as string dim p1 as string dim p2 as string i = 1 cmdline = trim(command) p1 = GetCmdPara(cmdline, i) p2 = GetCmdPara(cmdline, i) msgbox "p1= " & p1 & chr(10) & "p2= " & p2 '======================================================================= ' コマンドパラメタ取得 '======================================================================= '【引数】 ' para = コマンドパラメタ ' i = 【入出力】先頭位置 '【戻り値】 ' string = パラメタ ' "" = なし '【処理】 ' ・半角空白で区切られたコマンドパラメタの先頭位置からパラメタを切り出 ' して返します。 '【著作権】 ' GetCmdPara() ver 1.00 Copyright (C) 1999 Y.SAK '【履歴】 ' 1999.04.17 sak ver 1.00 新規作成 '======================================================================= Public Function GetCmdPara(para As String, i As Integer) As String Dim j As Integer Dim k As Integer '** コマンドパラメタ取得 If i > Len(para) Then GetCmdPara = "" Exit Function End If j = InStr(i, para, " ") For k = j + 1 To Len(para) If Mid(para, k, 1) <> " " Then Exit For Next If k > Len(para) Then j = 0 Else j = k - 1 End If If j = 0 Then GetCmdPara = Trim(Mid(para, i, Len(para) - i + 1)) i = Len(para) + 1 Else GetCmdPara = Trim(Mid(para, i, j - i)) i = j + 1 End If End Function ■ディレクトリ名切り出し(ファイルパス名取得、ファイルパス取得) 【使い方】 msgbox GetPath("c:\test\a01.txt") '======================================================================= ' ディレクトリ名切り出し '======================================================================= '【引数】 ' path = パス付きファイル名 '【戻り値】 ' string = ディレクトリ名 '【処理】 ' ・fnm からディレクトリ名だけを切り出し返します。 '【著作権】 ' GetPath() ver 1.00 Copyright (C) 1999 Y.SAK '【履歴】 ' 1999.04.17 sak ver 1.00 新規作成 '======================================================================= Public Function GetPath(path As Variant) As String Dim i As Integer Dim fnm As String '** ディレクトリ名切り出し fnm = LCase(Trim(path)) For i = Len(fnm) To 1 Step -1 If Mid(fnm, i, 1) = "." Then Exit For Next If i = 0 Then fnm = fnm + "\" For i = Len(fnm) To 1 Step -1 If Mid(fnm, i, 1) = "\" Then Exit For Next If i > 0 Then GetPath = Left(fnm, i) Else For i = 1 To Len(fnm) If Mid(fnm, i, 1) = ":" Then Exit For Next If i > 0 Then GetPath = Left(fnm, i) Else GetPath = "" End If End If End Function ■ファイル名切り出し 【使い方】 msgbox GetFilename("c:\test\a01.txt") '======================================================================= ' ファイル名切り出し '======================================================================= '【引数】 ' path = パス付きファイル名 '【戻り値】 ' string = ファイル名 '【処理】 ' ・fnm からファイル名だけを切り出し返します。 '【著作権】 ' GetFilename() ver 1.00 Copyright (C) 1999 Y.SAK '【履歴】 ' 1999.04.17 sak ver 1.00 新規作成 '======================================================================= Public Function GetFilename(path As Variant) As String Dim i As Integer Dim fnm As String '** ファイル名切り出し fnm = LCase(Trim(path)) If Right(fnm, 1) = "\" Then GetFilename = "" Else For i = Len(fnm) To 1 Step -1 If Mid(fnm, i, 1) = "\" Then Exit For Next If i > 0 Then GetFilename = Right(fnm, Len(fnm) - i) Else For i = 1 To Len(fnm) If Mid(fnm, i, 1) = ":" Then Exit For Next If i < Len(fnm) Then GetFilename = Right(fnm, Len(fnm) - i) Else GetFilename = "" End If End If End If End Function ■半角変換 【使い方】 msgbox Hankaku("ABCdef012", HAN_HAN) msgbox Hankaku("ABCdef012", HAN_LOW) msgbox Hankaku("ABCdef012", HAN_UP) '======================================================================= '** 半角変換定数宣言 Public Const HAN_HAN = 0 Public Const HAN_LOW = 1 Public Const HAN_UP = 2 Public Const HAN_NO = 9 '======================================================================= ' 半角変換 '======================================================================= '【引数】 ' dt = 文字列 ' mode = 変換モード ' HAN_HAN = 半角にする ' HAN_LOW = 小文字半角にする ' HAN_UP = 大文字半角にする '【戻り値】 ' string = 半角文字列 '【処理】 ' ・文字列を mode に従って半角にして返します。 ' ・英数字記号以外の半角変換不能全角文字はそのまま返します。 '【著作権】 ' Hankaku() ver 1.00 Copyright (C) 1999 Y.SAK '【履歴】 ' 1999.04.17 sak ver 1.00 新規作成 '======================================================================= Public Function Hankaku(dt As Variant, mode As Integer) As String Dim i As Integer Dim s As String Dim a As String Dim z As String '** データ整形 s = Trim(dt) '** 半角変換 For i = 1 To Len(s) a = Mid(s, i, 1) If a >= " " And a <= "~" Or a >= "。" And a <= "゚" Then z = z + a Else Select Case a Case " " z = z + " " Case "," z = z + "," Case ":" z = z + ":" Case "." z = z + "." Case "/" z = z + "/" Case "−" z = z + "-" Case "ー" z = z + "-" Case Else If a >= "0" And a <= "9" Or a >= "A" And a <= "Z" Then z = z + Chr(Asc(a) + &H7DE1) Else If a >= "a" And a <= "z" Then z = z + Chr(Asc(a) + &H7DE0) Else z = z + a End If End If End Select End If Next '** 大文字、小文字変換 Select Case mode Case HAN_LOW z = LCase(z) Case HAN_UP z = UCase(z) End Select '** 半角文字列セット Hankaku = z End Function ■VB テクニック編資料
■VB 入門編資料
■VB 基礎編資料
■VB ビジュアル編資料