アプリ版:「スタンプのみでお礼する」機能のリリースについて

ユーザーからの注文が1行1テキストファイルで断続的にメールに添付されて配信されてきます。MS-DOSのCOPYコマンドとワイルドカードを利用して結合のバッチファイルを作成しましたが、テキストファイルの最終に改行がない為、長~いレコードになってしまい、データベース(Accessですが)にインポートできません。改行付で結合、あるいはその他の解決方法はないものでしょうか?
win98+Access2000※Accessはマクロをチョロッといじれる程度の初心者です。
よろしくお願いします。

A 回答 (3件)

Sub test01()


Path = "c:\My Documents\"
Open Path & "xxx.csv" For Output As #2
a = Dir("c:\My Documents\")
p01:
b = Dir()
If b = "" Then GoTo e01
If Right(b, 3) = "csv" Then
MsgBox b
Open Path & b For Input As #1
On Error GoTo 0
Input #1, x
Print #2, x
Close #1
End If
GoTo p01
e01:
Close #2
End Sub
Path=の右辺のところを注文テキストファイルあるフォルダ名に変えてください(フルパス)。そのフォルダには注文テキスト以外置かないように。
Open Path & "xxx.csv" For Output As #2のところは
xxx.csvでテストしましたが、アウトプットファイル名.txt
に変えてください。
エクセルやアクセスVBAのモジュールにコピーし実行できるはずです。
VBの場合も標準モジュールにコピーし、Form1を解放し、Sub test01()をSub Main()にして実行して下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。回答を充分理解する力がまだ無いので試行錯誤でやってみます。ちちなみにコマンドボタンのイベントに突っ込んで見ましたが今一歩です。やっぱりこの辺を理解していかないと先には進めませんよねぇ。頑張ってみます。

お礼日時:2003/02/06 15:31

ではバッチを作成して



copy B\zero.txt B\注文済み.txt
for %%f in (A\注文*.txt) do copy /b B\注文済み.txt+%%f+B\改行.txt B\注文済み.txt

起動条件
1.メールで送られてきたファイルはフォルダAにある
2.フォルダAには上記以外のファイルは存在しない
3.なので当然AとBは別のフォルダ
4.起動前に注文済み.txtは存在しない
5.改行.txt は改行のみのファイル、zero.txtは0バイトのファイル

動作検証はWin2000で行いましたが、Win98でも動くと思います。
    • good
    • 0

一番簡単で分かりやすいのは、


改行だけのファイルを作っておき、
コピーするときに間に入れていくことです。

copy a.txt + 改行.txt + b.txt + 改行.txt + ・・・

この回答への補足

速攻の回答ありがとうございます。
注文030205001.txt
注文030205002.txt
注文030205003.txt
みたいなファイル名で来ますので、注文済み.txtを作成し、copy 注文*.txt 注文済み.txt としております。説明が足りずにすみませんでした。ここに改行を入れたいにですが...

補足日時:2003/02/05 17:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!