前提・実現したいこと
######前提ファイル
①ID.txt ②hoge.csv result.csv
11 "aa", "11" "aa", "11"
12 "bb", "12" "bb", "12"
13 ⇒ "cc", "13" ⇒ "cc", "13"
14 instr "dd", "14" 出力 "dd", "14"
15 "ee", "19"
######実現したいこと
上記のようなファイルが存在し、①の1行目から②のファイル
対してInstr関数にて順次検索を行い、マッチすれば別テキストに
出力を行うスクリプトを作成しています。
発生している問題・エラーメッセージ
問題として実行速度が遅いことが問題です。
以下のような方法を試してみましたが、期待する実行時間までには改善ができませんでした。
なにか別のアルゴリズムがあればご教示いただけないでしょうか。
試したこと
①のテキストを4分割し、非同期処理にて
②のファイルに検索を行う、という方法です。
該当のソースコード
以下ようなの処理のスクリプトをmainファイルから非同期にて4並列にて実行を行っています。
分かりずらい変数名で申し訳ございません。
実際のコードの一部分を抜き出しております。
vbs
1' 読み込みファイル 2' 実際にはここで4分割されたファイルが読み込まれています。 3Dim idtxt 4Set idtxt = fso.OpenTextFile( "ID.txt", 1, False, 0) 5 6' 書き出しファイル 7Dim resultFile 8Set resultFile = fso.OpenTextFile( "result.csv", 8, True) 9 10 11Do Until idtxt.AtEndOfStream 12 13 ID = idtxt.ReadLine 14 ' 検索対象ファイル 15 Set hogeCsv = fso.OpenTextFile("hoge.csv", 1, False, 0) 16 Do Until hogeCsv.AtEndOfStream 17 18 line = hogeCsv.ReadLine 19 20 ' 比較 21 If InStr(line, ID) <> 0 Then 22 '一致 23 resultFile.WriteLine line 24 Exit Do 25 End If 26 27 Loop 28 29Loop
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。