VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/12/19(Fri) 02:08
投稿者Tomo
Eメール
URL
タイトルRe^4: AtEndOfStream について

何度もすみません、NAO★さんの案を習い色々と試してる
のですが、どうも旨く動作してくれません(涙

Code 乗せさせて頂きますのでどこが間違ってるか教えて頂け
ないでしょうか?

先ず、変数に取り込む所では

    Dim fndKey(1000)    As String
    Dim f               As Integer
    Dim fMax            As Integer

    ' 変数に Keyword を取り込み。Keyword は各半角 10字程度
    f = 0
    Do Until objKey.AtEndOfStream
        fndKey(f) = objKey.ReadLine
        f = f + 1
    Loop
    
    ' Keyword 数取得
    fMax = f

としました。恐らくここは問題無いと思うのですが、その後
文字列を Keyword Check する段で、過去ログも参考にしつつ

    Do Until objFile.AtEndOfStream
                
        ' 検索元 File から 1行づつ変数に読み込み。
        strTextLine = objFile.ReadLine
                
        For f = 0 To fMax   ← 動的変数に入れた Keyword を順次 Check
            If InStr(1, strTextLine, fndKey(f), vbTextCompare) = 0 Then
                              ↑ Keyword が含まれてないのを Check
                fndWord = 1   ← Keyword が含まれて無かったら Flag On
            Else
                fndWord = 0   ← Keyword が含まれてたら Flag Off
                Exit For      ← 処理減らす為に For 抜け
            End If
        Next f
        
        If fndWord <> 0 Then  ← Flag Check
            Print #intTempNo, strTextLine  ← Flag が立っていれば書き出し
        End If
    Loop             ← 以上検索元を読み終わる迄繰り返し


という感じなのですが、全く書き出さないか書き出しても可也
おかしい判定になってしまいます。
Keyword 自体は別ファイルに行毎に Keyword をそのまま書き、
検索元ファイルの中の各行の中に Keyword が全て含まれてない
場合に書き出すという用途なのですが、Keyword が複数という
所で旨くいけてない感じです。
1つの Keyword のみの場合ならば過去ログに有ったのですが。。。

Like 関数ではワイルドカードの部分(?)で旨く動作せず、最初
の Filter だと何とか動作はしますが処理に時間が可也係り、
手詰まりな状態です。
お手数ですが宜しくお願い致します。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -