投稿日 | : 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 だと何とか動作はしますが処理に時間が可也係り、
手詰まりな状態です。
お手数ですが宜しくお願い致します。