SAK 図書館
VB テクニック編24 - 任意文字カウント、文字列反転、スクロールバー
■SAK 関数利用規程
・テクニック編で紹介する関数は、私こと Y.SAK の開発関数である。
・著作権明示部分の改編は認めない。
・個人、企業がこれらの関数を使用したり、一部を使用して新たなシステムや
プログラムを開発することは自由です。
・但し、これらの関数を一部でも使用しているソフトウェアをシェアウェア、
その他有償プロダクトとして配布・販売するには、私の許可が必要です。
(無償のフリーソフトウェアなら、自由に配布しても良い。)
・これらの関数を使用して発生した、いかなる形での損害も私こと Y.SAK は
賠償しません。
■任意文字カウント
・文字列に含まれる任意文字列の出現数をカウントするには、次のようにする。
空白の検索など、様々に応用できる。
(空白文字検索、指定文字列数、テキスト検索)
dim ct as long
ct = CntStr("abcdefabgabh", "ab")
Public Function CntStr(s as string, org as string) as long
dim i as long
dim j as long
dim k as long
k = len(org)
i = 1
j = 0
do
i = instr(i, s, org)
if i > 0 then
i = i + k
j = j + 1
end if
loop until i = 0
CntStr = j
end Function
・テキストファイルを対象に任意文字列の出現数をカウントするには、
次のようにする。
dim ct as long
ct = CntStrFile("g:\tmp\test.txt", "ab")
if ct = -1 then msgbox "ファイルがオープンできない。"
Public Function CntStrFile(fnm as string, org as string) as long
dim fno as integer
dim rec as string
dim i as long
CntStrFile = -1
i = 0
on local error resume next
fno = freefile
open fnm for input as fno len = 32000
if err <> 0 then exit function
do until eof(fno)
line input #fno, rec
i = i + CntStr(rec, org)
loop
close fno
if err <> 0 then exit function
CntStrFile = i
end Function
■文字列反転
・文字列を反転して得るには、次のようにする。
msgbox RevStr("abcdef")
public function RevStr(s) as string
dim a as string
dim i as long
'** 文字列反転
for i = len(s) to 1 step -1
a = a & mid(s, i, 1)
next
RevStr = a
end function
■ASP での数値ゼロ埋め編集
・ASP では、format が使用できないので、ゼロ埋めが面倒である。
次の関数を使用すれば、format と同等のゼロ埋めができる。
response.write(FixZero(123, 6))
| |_ 整数ゼロ埋め桁
|_ 数値変数、数値 DB 項目
response.write(FixZero(rs("得意先CD"), 4))
function FixZero(n, l) 'as string
'** ゼロ埋め
FixZero = right(string(l, "0") & n, l)
end function
■スクロールバーコントロール
・HScrollbar、VScrollbar は、次のように制御します。
尚、実際のスクロールコードは、HScroll1_Change、VScroll1_Change イベ
ントに記述します。
HScroll1.Max = 100 '最大値
HScroll1.Min = 1 '最小値
HScroll1.SmallChange = 10 '矢印クリック移動量
HScroll1.LargeChange = 20 'バークリック移動量
HScroll1.Value = 50 '現値
VScroll1.Max = 100 '最大値
VScroll1.Min = 1 '最小値
VScroll1.SmallChange = 10 '矢印クリック移動量
VScroll1.LargeChange = 20 'バークリック移動量
VScroll1.Value = 50 '現値
Private Sub HScroll1_Change()
...
End Sub
Private Sub VScroll1_Change()
...
End Sub
■VB テクニック編資料
■VB 入門編資料
■VB 基礎編資料
■VB ビジュアル編資料