【】Top

【】VB.NET
【】VB6.0

【】メールマガジンの購読
【】メールマガジンの解除






【】会社概要

【】お問い合わせ


姉妹サイト「バーチャルコネクション!」はこちらです。

姉妹サイト「七福神のメールでビンゴ!」はこちらです。

アイネットマコト

●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。






含まれる文字列でファイルを検索する

.NET では、Linux で便利な grep の機能ような
「含まれる文字列」によってファイル検索することが可能です。

この機能を使えば、簡単に、
フォルダ指定で、フォルダ中のファイルを次々検索して
確認していくといったことが実現します。


フォームに次の様なコードを記述します


-----------VB.NETコーディングここから-------------------


1.フォームに、テキストボックスコントロールと
    ボタンコントロールを配置します。
    下記は、デフォルトのオブジェクトの名前と配置を示しています。

  ┏━━━━━━━━┓┏━━━━━━━━┓
  ┃Label1          ┃┃Label2          ┃
  ┗━━━━━━━━┛┗━━━━━━━━┛
              ┏━━━━┓
              ┃Button1 ┃
              ┗━━━━┛

  ┏━━━━━━━━┓┏━━━━━━━━┓
  ┃Label3          ┃┃TextBox1        ┃
  ┗━━━━━━━━┛┗━━━━━━━━┛
              ┏━━━━┓
              ┃Button2 ┃
              ┗━━━━┛

  ┏━━━━━━━━━━━━━━━━━━┓
  ┃ListBox1                            ┃
  ┃                                ┃
  ┃                                ┃
  ┗━━━━━━━━━━━━━━━━━━┛


2.ボタンコントロールの
    Button1 text プロパティに「フォルダ」と記述します。
    Button2 text プロパティに「検 索」と記述します。
    ラベルコントロールの
    Label1 text プロパティに「検索フォルダ」と記述します。
    Label3 text プロパティに「検索文字列」と記述します。

  ※説明用のためです。必須ではありません。


  ┏━━━━━━━━┓┏━━━━━━━━┓
  ┃検索フォルダ    ┃┃Label2          ┃
  ┗━━━━━━━━┛┗━━━━━━━━┛
              ┏━━━━┓
              ┃フォルダ┃
              ┗━━━━┛

  ┏━━━━━━━━┓┏━━━━━━━━┓
  ┃検索文字列      ┃┃TextBox1        ┃
  ┗━━━━━━━━┛┗━━━━━━━━┛
              ┏━━━━┓
              ┃ 検 索  ┃
              ┗━━━━┛

  ┏━━━━━━━━━━━━━━━━━━┓
  ┃ListBox1                            ┃
  ┃                                ┃
  ┃                                ┃
  ┗━━━━━━━━━━━━━━━━━━┛

3.フォームで右クリックして、「コードの表示」を
  選び、コード編集画面にします。

4.フォームの宣言部に、次のコードを記述します。

    Imports System.IO
    Imports System.Windows.Forms

5.さらに、 Public Class Form1 内に、
  次のコードを記述します。

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click


        Dim strPath As String

        Dim fbd As FolderBrowserDialog = New FolderBrowserDialog
        Dim dr As DialogResult = fbd.ShowDialog()

        If dr = DialogResult.OK Then
            Label2.Text = fbd.SelectedPath
        End If



    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button2.Click

        Dim strFile As String   'ファイル名
        Dim strFilePath As String   'ファイルパス
        Dim strFindStr As String    '検索したい文字列
        Dim strForder As String 'フォルダ

        ListBox1.Items.Clear()
        strForder = Label2.Text

        '指定されたものがフォルダの場合は、フォルダ内のファイル名の一覧を取得して
        '検索します

        For Each strFile In System.IO.Directory.GetFiles(strForder)
            '検索したい文字列
            strFindStr = TextBox1.Text
            strFilePath = strForder + "\" + System.IO.Path.GetFileName(strFile)
            If Chk_FileInString(strFilePath, strFindStr) Then
                ListBox1.Items.Add(System.IO.Path.GetFileName(strFile))
            End If

        Next

        If ListBox1.Items.Count = 0 Then
            ListBox1.Items.Add( _
            "検索した文字列を含むファイルは見つかりませんでした。")
        End If


    End Sub

    'ファイルを指定して、文字列を含んでいるファイルであるとき、True を返す
    Function Chk_FileInString(ByVal PistrFile As String, _
    ByVal PistrFindStr As String) As Boolean

        Chk_FileInString = False


        Dim strLine As String       '1行
        Dim intFind As Integer

        Dim intFile As Integer  'ファイル番号

        intFile = FreeFile()

        'ファイルのオープン
        FileOpen(intFile, PistrFile, OpenMode.Input)

        'ファイルの終端まで読み込む
        Do Until EOF(intFile)
            strLine = LineInput(intFile)
            If Not strLine = Nothing Then

                intFind = InStr(strLine, PistrFindStr)

                If intFind > 0 Then
                    'あれば、このループを抜け、次のファイルへ
                    Chk_FileInString = True
                    Exit Do
                End If


            End If
        Loop

        'ファイルのクローズ
        FileClose(intFile)



    End Function






6.ビルドして実行します。

7.フォームに表示された
    「フォルダ」ボタンを押して、
     検索したいフォルダを指定します。

8.指定したフォルダのパスが画面上部に表示されます。

9.検索文字列をテキストボックスへ入力します。
    ※ファイル中に含まれる語句などを入力してください。
    日本語も可能です。

10.フォームに表示された「検索」を押すと、
    検索フォルダで指定した、フォルダ中のファイルで、
    検索文字列で指定した文字列が含まれるファイル名を
    リストボックスへ一覧表示します。




-----------VB.NETコーディングここまで-------------------


上記をカスタマイズして、リストボックスに表示されたファイル名
をクリックして、関連付けられたファイルオープンも可能です。

含まれる文字列でのファイル検索は、
開発者にとって重宝する機能ですねっ。




 

http://anetm.com/dev/d.cgi?SC=DTDTL&o=Ole

Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。

「これがほしかった!厳選サンプルツール集」の注意点
●当サイトはリンクフリーです。
2005/10/06(木)00:05 更新