CSVファイルを1行ずつ比較して読み込み、一致した行を別ファイルに記述していこうと思っています。
現在、csvファイルを読み込む所まで出来ています。
比較して別ファイルに記述する方法を教えて下さい。
もしくはアドバイスください。
【ファイルの中身】
"09/09/2005 0:00:00,aaa,bbb,ccc"
【比較条件】
当日の日付を取得し、年月日だけで比較する
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\test.csv")
Do while objFile.ReadLine <> ""
'IF文を記述(条件:日付)
'別ファイルに記述する
Loop
objFile.close
Set objFileSystem = Nothing
Set objFile = Nothing
No.4ベストアンサー
- 回答日時:
>エラー:”ファイルの最後を超えた入力を行おうとしました”
#2の時に書いておいても良かったんですけど、質問の内容と直接は関係ないので書きませんでしたが
ファイルの入力では
Do until readFile.AtEndOfStream
strLine = readFile.ReadLine
'処理
loop
のようにAtEndOfStreamでファイルの終端に達したかどうかを調べて、
達していない間ファイル入力操作をするというのが定番です。
表記のエラーは、既にファイルの最後まで読み込んだのに、
次の読み込みをしようとしたということです。
また、
>MyString = split(objFile.ReadLine,",")
のようにすると、ReadLineによって2回目の読み込みが行われてしまうので、読み込んだ後、色々操作をしようとする場合には、サンプルで示したように、変数に代入して取っておく(のを使う)のが定番です。
(もちろん、一度だけなら直接ReadLineしたものを使ってもいいんですけど)
No.3
- 回答日時:
質問です。
補足してください。(1)日をまたいだときはどうしますか?
(2)ファイルの中身の 09/09/2005 は mm/dd/yyyy ですか dd/mm/yyyy ですか?
(3) WSHを使わなくても出来そうですがWSHが必須ですか
(4) ファイルの中身(test.csv)は最大何行ぐらいを想定していますか?
この回答への補足
レスありがとうございます。
>(1)日をまたいだときはどうしますか?
→日をまたぐ事はありません。該当の日の0時~23時59分59秒までです。
>(2)ファイルの中身の 09/09/2005 は mm/dd/yyyyですか
→日付の形式はmm/dd/yyyyです
>(3) WSHを使わなくても出来そうですがWSHが必須ですか dd/mm/yyyy ですか?
→WSHを理解していないので、調べておきます。
説明を頂けると嬉しいです。
>(4) ファイルの中身(test.csv)は最大何行ぐらいを想定 していますか?
→ファイル容量が10MBほどあり、Excelファイルでは全体を読み込む事が出来ないため、該当の行だけを抽出しようと思っています。
以上、このような補足で宜しかったでしょうか?
宜しくお願い致します。
No.2
- 回答日時:
>比較して
読み込んだ一行分のデータがaLineだとすると
field=split(aLine,",")
で、
field(0)に日付部分の文字列(09/09/2005 0:00:00)が切り出せます。
さらに、split(field(0)," ")するか
left(field(0),10)で年月日部分(09/09/2005)が切り出せますので、
そこで比較します。
if left(field(0),10)="09/09/2005" then
>別ファイルに記述する
OpenTextFileで書き込みするファイルをオープンします。
Set objWFile=objFSO.OpenTextFile("c:\out.csv", 2, True)
出力ファイルに書き込みます
objWFile.write(aLine)
この回答への補足
Dim MyDate,MonthString,DayString,YearString
'今日の日付を取得
MyDate = Date - 2 ' MyDate は、現在のシステムの日付
YearString = Left(MyDate,4)
MonthString = Mid(MyDate,6,2)
DayString = Right(MyDate,2)
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Dim MyString
Dim DateString
'DateString = MonthString & / DayString & / & YearString
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\test.csv")
Do until objFile.ReadLine = ""
MyString = split(objFile.ReadLine,",")
if left(MyString(0),10) = "09/22/2005" then
msgbox "!!!"
end if
Loop
objFile.close
これを実行すると、下記エラーが出力されるんですが、内容が良く分かりません。教えて下さい。
エラー:”ファイルの最後を超えた入力を行おうとしました”
No.1
- 回答日時:
「CSVファイルを1行ずつ比較して読み込み、一致した行を別ファイルに記述」という処理の内容を、まだ具体的にはお考えでないのではないかと思います。
試しに、いろいろな内容で10行ほどのサンプルファイルをいくつか作成し、手作業でその処理作業をやってみてください。
次に、その「手作業で行う作業」の詳細を書き出してみてください。その作業のことを全く何も知らない人でも、その詳細を読めば必ず同じ作業ができるという程度に細かく書いてみてください。
そうすれば、その内容をプログラムに移し変えるのは比較的容易かと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
テキストファイルの最終行を削...
-
csvファイルを開かずに文字を検...
-
グローバル変数のよくない使い...
-
SGファイルって何ですか?
-
ダイアログボックスで複数フォ...
-
最近使ったファイルからファイ...
-
2つのテキストファイルのマー...
-
VBに、Cのincludeのようなもの...
-
マウスポインタの変更
-
Thunderbirdでemlファイルを開...
-
RPGでファイル名(もしくはレコ...
-
複数のファイルからのデータの...
-
UTL_FILEにて既存のExcelに追加...
-
mp3のID3タグをVBで編集する方法
-
バイナリーとして.wavファイル...
-
fopenできる上限の変更
-
BI書、FD書 とは
-
VB6.0 特定の位置からの書き換え
-
PDFを全文検索するプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
Excelマクロでの再読込み方法
-
テキストファイルの最終行を削...
-
C言語のfopenについて教えてく...
-
ASP .NETでファイル選択ダイア...
-
CSVファイルへの保存の際、デー...
-
SGファイルって何ですか?
-
VBに、Cのincludeのようなもの...
-
VBAにてEXCEL以外のファイル(テ...
-
アプリケーション終了時例外エ...
-
大きいサイズのテキストファイ...
-
fopenできる上限の変更
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
バッチで118項目のCSVを処理し...
-
【C#】リソースファイルの埋め...
-
マウスポインタの変更
-
XMLファイルの表示について
おすすめ情報