- ベストアンサー
VBScriptを使用してテキストファイルの間違いを探す方法
- VBScriptを使用してテキストファイルの内容の間違いを見つける方法を教えてください。
- CSV形式のテキストファイルで、一部の行の内容が正しくありません。特定の条件で間違った行を見つけて、別のファイルに書き出したいです。
- A列とB列の値が一致する行のC列のデータが正しいか確認するための効果的なアルゴリズムを教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
色々な方法があります。 (1)データを読み込んで配列に溜め、比較を行う。 (2)fcコマンドを実行して標準出力をモニタする。 (3)クエリを使う。 (3)はJetドライバがインストールされていれば可能です。 (2)はWSHのExecでfcコマンドを走らせ、StdOutを読み込みます。 あるいはリダイレクトして出力ファイルを見る方法もあります。 (1)はまぁ、コテコテとプログラムすることになります。 (3)の例を示します。 Dim C, R Set C = CreateObject("ADODB.Connection") C.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\~;" & _ "Extended Properties=""text;HDR=No;FMT=Delimited""" Set R = CreateObject("ADODB.Recordset") R.Open "SELECT A.*,B.F3 FROM comp1.txt A INNER JOIN comp2.txt B" & _ " ON A.F1=B.F1 AND A.F2=B.F2 AND A.F3<>B.F3", A, 0 Do Until R.EOF '★R.Fields(n).Value をファイルに書き出す Loop R.Close C.Close ConnectionStringに設定する文字列でSourceに指定するのはパスで、 ファイル名でないことに注意してください。1行目がフィールド名でない という指定(HDR=No)にしているので、フィールド名はF1,F2,F3・・・に なります。
その他の回答 (1)
- bajutsu
- ベストアンサー率20% (139/693)
こういうのって、アルゴリズムを考える工程が 一番楽しいんだよね。 よって、自分で考えてください。 たいして難しくはない。 ファイルの入力順は合ってる前提? 入力件数は必ず一致? 必ず文字コードの昇順or降順で統一されてるとか、されてないとか。 A列+B列は、必ずユニークになるのか? その辺がどうなっているのかによって 作りも難易度も変わってきますが…。
お礼
ありがとうございます
お礼
ありがとうございます。 参考にさせていただきます。 どうしてもJETがうまく入らず・・・試行錯誤しておりますがお礼をさせていただきます