SAK 図書館
VB テクニック編9 - 空白除去、文字変換、フォルダ名、パス分解、ファイル日付
■SAK 関数利用規程
・テクニック編で紹介する関数は、私こと Y.SAK の開発関数である。
・著作権明示部分の改編は認めない。
・個人、企業がこれらの関数を使用したり、一部を使用して新たなシステムや
プログラムを開発することは自由です。
・但し、これらの関数を一部でも使用しているソフトウェアをシェアウェア、
その他有償プロダクトとして配布・販売するには、私の許可が必要です。
(無償のフリーソフトウェアなら、自由に配布しても良い。)
・これらの関数を使用して発生した、いかなる形での損害も私こと Y.SAK は
賠償しません。
■ゼロサプレス
・ゼロ埋めのデータのゼロ削除を行うには、次のようにする。
dim s as string
dim d as variant
s = "000123.45"
d = cdec(s)
msgbox d
・逆にゼロ埋めするには、次のようにする。
dim d as variant
dim s as string
d = cdec(123.45)
s = format(d, "000000.00")
msgbox s
■空白除去
・入力項目など、データの前や後ろに余分な空白が入力される可能性がある。
この空白を除去するには、次のようにする。(空白文字削除)
text1 = trim(text1)
・左側の空白に意味があるときは、右側の空白のみ除去する。
text1 = rtrim(text1)
■小文字化
・入力項目などのチェック時に大文字小文字が混じると複雑である。
一時小文字に変換して、比較するとコードがシンプルになる。
a = lcase(trim(text1))
if a = "abc" then ...
■文字変換
・strconv() 関数を使用すると、様々な文字変換が簡単に行える。
次のように vbWide を指定すると、全角の「abc012」に変換すること
ができる。(文字全角変換、文字列全角変換、半角全角変換、全角半角変換)
s = strconv(varstr, mode)
| |_ 1 vbUpperCase 大文字に変換
| 2 vbLowerCase 小文字に変換
| 3 vbProperCase 各単語の先頭を大文字に変換
| 4 vbWide 半角文字を全角文字に変換(全角変換)
| 8 vbNarrow 全角文字を半角文字に変換(半角変換)
| 16 vbKatakana ひらがなをカタカナに変換
| 32 vbHiragana カタカナをひらがなに変換
| 64 vbUnicode UNICODE に変換
| 128 vbFromUnicode UNICODE からシステム既定のコードページに変換
|_ 文字列変数
dim org as string
dim s as string
org = "abc012"
s = strconv(org, 4)
■フォルダ名
・フォルダ名の最後に「\」がないとき付ける。
text1 = trim(text1)
if right(text1, 1) <> "\" then text1 = text1 & "\"
・フォルダ名の最後が「\\」となるようなロジックがあれば、「\」にする。
text1 = trim(text1)
if right(text1, 2) = "\\" then text1 = left(text1, len(text1) - 1)
■パス分解
・ファイル名を含むパスを、フォルダ、ファイル、拡張子に分解する。
分解結果は、
ph = フォルダ\
fl = filename.atr
f1 = filename
f2 = atr
とセットされる。
dim i as integer
dim ph as string
dim fl as string
dim f1 as string
dim f2 as string
text1 = trim(text1)
i = instrrev(text1, "\")
if i > 0 then
ph = left(text1, i)
fl = right(text1, len(text1) - i)
else
ph = ""
fl = text1
end if
i = instrrev(fl, ".")
if i > 0 then
f1 = left(fl, i - 1)
f2 = right(fl, len(fl) - i)
else
f1 = fl
f2 = ""
end if
■ファイル最終更新日(ファイル更新日時)
・ファイルの最終更新日は、ファイルシンテムオブジェクトを使用すれば、
取得できる。(タイムスタンプ)
『ASP VB Script 基礎編 (その三) ファイルシステムオブジェクト』
も参考にして下さい。
・DateLastModified を format() するのは、コントロールパネルの設定書式
で返ってくるからである。
他ユーザ PC の日付書式は予想が不可能なので、必ず、書式を format() で
指定して処理すると良い。
dim fs as variant
dim f as variant
dim fnm as string
Set fs = CreateObject("Scripting.FileSystemObject")
fnm = "g:\tmp\test.txt"
Set f = fs.GetFile(fnm)
msgbox Format(f.DateLastModified, "yyyy.mm.dd hh:mm:ss")
■VB テクニック編資料
■VB 入門編資料
■VB 基礎編資料
■VB ビジュアル編資料