SAK 図書館
VB テクニック編34 - テキストファイル行数計算、文字数計算、クリップボード
■SAK 関数利用規程 ・テクニック編で紹介する関数は、私こと Y.SAK の開発関数である。 ・著作権明示部分の改編は認めない。 ・個人、企業がこれらの関数を使用したり、一部を使用して新たなシステムや プログラムを開発することは自由です。 ・但し、これらの関数を一部でも使用しているソフトウェアをシェアウェア、 その他有償プロダクトとして配布・販売するには、私の許可が必要です。 (無償のフリーソフトウェアなら、自由に配布しても良い。) ・これらの関数を使用して発生した、いかなる形での損害も私こと Y.SAK は 賠償しません。 ■テキストファイル行数計算 ・テキストファイル、ソースプログラムなどの行数を計算するには、 次のようにする。(ファイル行数表示、ファイル行数カウント) spct に true を渡すと改行のみの行も加算される。 spct に false を渡すと改行のみの行は加算されない。 尚、1 行を改行コードで認識している。(CR/LF) 少し、修正すれば、注釈行は加算しないなどにもできる。 Private Sub Command1_Click() dim ct as long ct = CntRec("g:\tmp\test.frm", true) select case ct case -1 msgbox "オープンエラー" case -2 msgbox "リードエラー" case else msgbox "行数 = " & ct end select End Sub Public Function CntRec(fnm as string, spct as boolean) as long dim fno as integer dim ct as long dim rec as string '** エラーセット CntRec = -1 '** エラートラップ開始 on local error resume next '** ファイルオープン fno = freefile open fnm for input as fno len = 32000 if err <> 0 then exit function '** レコード加算 ct = 0 do until eof(fno) line input #fno, rec if spct then ct = ct + 1 else if trim(rec) <> "" then ct = ct + 1 end if loop if err <> 0 then ct = -2 '** ファイルクローズ close fno '** エラートラップ開始 on local error goto 0 '** 正常終了セット CntRec = ct End Function ■テキスト文字数計算 ・テキストファイル、ソースプログラムなどの文字数を計算するには、 次のようにする。(ファイル文字数表示、ファイル文字数カウント) spct に true を渡すと半角空白、全角空白、タブも加算される。 (但し、改行は計算しない。) spct に false を渡すと半角空白、全角空白、タブ、改行は加算されない。 Private Sub Command1_Click() dim ct as long ct = CntChr("g:\tmp\test.frm", true) select case ct case -1 msgbox "オープンエラー" case -2 msgbox "リードエラー" case else msgbox "文字数 = " & ct end select End Sub Public Function CntChr(fnm as string, spct as boolean) as long dim fno as integer dim ct as long dim rec as string dim i as long '** エラーセット CntChr = -1 '** エラートラップ開始 on local error resume next '** ファイルオープン fno = freefile open fnm for input as fno len = 32000 if err <> 0 then exit function '** 文字数加算 ct = 0 do until eof(fno) line input #fno, rec for i = 1 to len(rec) if spct then ct = ct + 1 else select case mid(rec, i, 1) case " ", " ", chr(&H09) case else ct = ct + 1 end select end if next loop if err <> 0 then ct = -2 '** ファイルクローズ close fno '** エラートラップ開始 on local error goto 0 '** 正常終了セット CntChr = ct End Function ■クリップボード操作 ・Windows のクリップボードを使用するには、次のようにする。 dim s as string '** クリップボードへコピー s = "コピーデータ" Clipboard.SetText s, vbCFText '** クリップボードからデータ取得 s = Clipboard.GetText(vbCFText) msgbox s '** クリップボードクリア Clipboard.Clear ■VB テクニック編資料
■VB 入門編資料
■VB 基礎編資料
■VB ビジュアル編資料