SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

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 ビジュアル編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK