
out.csvファイルに追記していくにはどのように記述すればいいのでしょうか?
アドバイス下さい。
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\test.csv")
'objFile.ReadLine
Do While Not objFile.AtEndOfStream
StrLine = objFile.ReadLine
MyString = split(StrLine,",")
'msgbox Mid(MyString(0),2,10)
'MyString = split(objFile.ReadLine,",")
if Mid(MyString(0),2,10) = "(PDH-CSV 4" then
Set objWFile=objFSO.OpenTextFile("c:\out.csv",2,true)
objWFile.write(StrLine)
msgbox "!!!"
end if
'
if Mid(MyString(0),2,10) = DateString then
Set objWFile=objFSO.OpenTextFile("c:\out.csv",2,true)
objWFile.write(StrLine)
''msgbox Mid(MyString(0),2,10)
msgbox "???"
end if
loop
objFile.close
Set objFSO = Nothing
Set objFile = Nothing
No.4ベストアンサー
- 回答日時:
あ、、、見落としてました(==;
>ファイルが開いたままになっている為、開けないと言っているのでしょうか?
そうです。
同じファイルを2つ同時にopenする事は、出来ません。
書き込み前に out.csvファイルをいったん close
してください。
てより、、、open処理が繰り返し内にあるのか(=w=;
Do Loop から外出しした方がいいかも、、。
もしくは、初めの一回だけOpenするように、flag持たすとか。
この回答への補足
書き込み用ファイルをloopの外に出したんですが、if文の中で追記するようにするにはどのようにすればいいのでしょうか?
また、Flagを立てるとはどういう事でしょうか?恐れ入りますが、アドバイスの方宜しくお願い致します。
No.5
- 回答日時:
気になったんですが、、(==; 宿題とかじゃないよね、、。
とりあえず、面倒なので、書いちゃいます。
(略)
' ここ、処理毎に新規でファイル作成の場合は 2
' 前回処理の内容を残すなら 8
Set objWFile=objFSO.OpenTextFile("c:\out.csv",8,true)
Do While Not objFile.AtEndOfStream
StrLine = objFile.ReadLine
MyString = split(StrLine,",")
if Mid(MyString(0),2,10) = "(PDH-CSV 4" then
objWFile.write(StrLine)
msgbox "!!!"
end if
if Mid(MyString(0),2,10) = DateString then
objWFile.write(StrLine)
msgbox "???"
end if
loop
objFile.close
objWFile.close
Set objFSO = Nothing
Set objFile = Nothing
>Flagを立てるとはどういう事でしょうか
忘れてください。(--; やり方のひとつですから、。
No.3
- 回答日時:
'800A0046'
は、書き込み権限のエラーです。
IIS なら、
IIS設定の「匿名アクセスで使用されるアカウント」
をAdmin権限に変更してください。
また、前回動かしたASPがファイル掴んだままになって
落ちた場合もそんな風になったから、、、
一応再起動確認もしてみてください。
この回答への補足
アクセス権は問題なく、再起動しても変わりません。
読み込むCSVが、
"09/26/2005 0:00:00,aaa,bbb,ccc"
"09/26/2005 0:00:15,aaa,bbb,ccc"
"09/26/2005 0:00:30,aaa,bbb,ccc"
"09/26/2005 0:00:45,aaa,bbb,ccc"
"09/26/2005 0:01:00,aaa,bbb,ccc"
と言った感じにログがあります。
日付で比較し一致したら、ファイルに追記する仕様なんですが、1行目を書き込んだ際に、ファイルが開いたままになっている為、開けないと言っているのでしょうか?
No.1
- 回答日時:
ForReading1
ファイルを読み取り専用として開きます。このファイルには書き込むことができません。
ForWriting2
ファイルを書き込み専用として開きます。
ForAppending8
ファイルを開き、ファイルの最後に追加して書き込みます。
例:
fso.OpenTextFile("c:\out.csv", ForAppending, True)
要は、
Set objWFile=objFSO.OpenTextFile("c:\out.csv",2,true)
の 2 が 間違い
この回答への補足
レスありがとうございます。
2→8に変えてみたんですが、エラーが出力され追記できない状態となっています。何故なんでしょうか?アドバイス下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
【C#】パス名で無効な文字
-
CSVファイルの項目行を削除...
-
【エクセルVBA】お願いします。...
-
VBAでcsvファイルを読み込んで...
-
エクセルVBA 大容量CSVファイル...
-
データ解析ソフトRでのファイル...
-
CSV形式での保存時に”文字列...
-
VB6.0 CSVファイル読み込みに...
-
csvファイルのデータの一部を取...
-
csvファイルのデータの間引きを...
-
COBOLでCSVをインプットにして...
-
複数のCSVファイルのAccessテー...
-
【エクセル マクロ】読み込ん...
-
エクセルマクロについて
-
csvファイルでの日付設定「yyyy...
-
複数のcsvファイルをExcelに一...
-
VBAでCSVファイルのインポート...
-
COBOL85でのCSVファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
csvファイルでの日付設定「yyyy...
-
【C#】パス名で無効な文字
-
CSV形式での保存時に”文字列...
-
csvファイル 項目数取得
-
マクロから出力されるcsvのダブ...
-
csvファイルを列数ごとに分割す...
-
VBAでcsvファイルを読み込んで...
-
データ解析ソフトRでのファイル...
-
【エクセルVBA】お願いします。...
-
エクセルVBA 大容量CSVファイル...
-
csvファイルのデータの一部を取...
-
CSVファイル作成
-
CSV出力して、MS/EXCELで開くと...
-
CSVファイルの項目行を削除...
-
エクセル形式のファイルの読み込み
-
複数のcsvファイルをExcelに一...
-
【エクセル マクロ】読み込ん...
-
複数のCSVファイルのAccessテー...
おすすめ情報