既存テキストファイルに追記
お世話になっております
既存のCSVファイルの最下行に追記するようなことはできますか?
処理をするたびに新規ファイルを作成するのではなく、単一のファイルに出力したいです
CSVファイルの出力はDataViewToTextで行っています
よろしくお願いします
-
DataViewToTextのヘルプを見ると、追記らしいことは見当たりませんね。
自分ならDELとかRENなども使って
COPY 元.TXT + 今回分.TXT 合体後.TXT
みたいな事をするかもしれません。 -
コマンドで、copy a.txt + a.txt c.txt をしたら
c.txt の中に、a.txtの中身が2回格納されていました。 -
nkmt さま
ありがとうございます
入出力ファイルだとアクセスに、追加というのがあるのでそれで既存ファイルに追記していくことができそうではありますが、DataViewToTextを使うと難しいのですかね
-
駄目元で実験しましたが
Magicの関数
FileCopy( 'c:¥a.txt,c:\a.txt', 'cc.txt') は何も起きませんでした。 -
nkmt さま
ありがとうございます
2つのファイルを1つのファイルにコピーしようというような意図の処理でしょうか
それだと難しいのですね
-
DataViewToTextが追記が出来ない(と思いましたので)代替案を書いてみました。
-
mnさんのおっしゃる通り入出力ファイルだと追記が出来ますが
DataViewToTextだと追記が出来なさそうなので
本物TXT+今回出力分TXTと足して、新本物TXTが出来そうだなと思いました。 -
nkmt さま
ありがとうございます
単体のテキストファイルを出力するにはDataViewToTextがとても簡単ですね
-
DataViewToTextも有難い関数です。
データ出力 オプション 式=1 のExcel出力もありがたいです。 -
nkmt さま
データ出力は使ったことがなかったです
ヘルプを参照しましたが便利な機能ですね -
画面上で集計結果を表示し
データ出力 オプション 式=1を使えるようにして
印刷PGの作成をしない事もあります。
Excelがインストールされていないと使えないと思いますが。 -
nkmt さま
ありがとうございます
非常に勉強になりましたありがとうございます
また、入出力ファイルでのテキストファイル出力に関してまして、
ヘッダを出力する際の有効な方法はございますでしょうか -
入出力ファイルでのテキスト出力の時は、画期的な方法ではなく、古典的な方法だと思いますが
得意先コード,得意先名,売上金額,粗利金額 といった文字を貼り付けたフォームを
データ出力 そのフォーム 出力ファイル 条件 counter(0)=1
みたいにしてます。 -
nkmt さま
ありがとうございます
やはりこの方法をとるしかないのですね
面倒だと思ったのでいい方法ないかとお聞きしました -
もしかするとデータビューの項目名を取得する関数が有ったかもしれません。
間違えてたらすみません。 -
こんにちはPuです
私は項目名をVarNameで取得し、StrTokenで項目名を抜き出して,で連結してタイトル行を作成した
事あります
でわ~でわ~ -
Puさん、こんにちは。
(スレッド主ではありませんが)VarName関数は私は未使用でした。
貴重な情報ありがとうございます。 -
nkmtさん
開始シンボルから終了シンボルまでをwhileで
StrToken(VarName(シンボル),2,'.')
で項目名を抜き出し、','で連結していってタイトル行を作成しました
でわ~でわ~ -
Puさん
私も真似て活用したいと思います。
いつもありがとうございます。 -
まずは VarName('A'VAR) みたいな実験をしてVarName関数が何なのかを知る。
項目名連結を書く時は
ブロック While LoopCounter() <= 10個
項目更新 V_A100 式 trim(V_A100 ) & ',' & VarName('A'VAR+LoopCounter() )
ブロック End みたいな感じでしょうね。
Puさんが言われるよう項目名にファイル名を就職する名称がは入っていた場合は
Strtokenで除去
1個目の名前の前に , が付かないように
ブロックWhileの前で1個目済ませておくのもありかもしれませんし -
mnさん
こんにちは
入出力ファイルのアクセスの「A=追加」で出来ますよ。
-
nkmtさん
ブロック Whileは 終了シンボルまでで行けます
Whileの中で シンボル+1 で回してやればokです
でわ~でわ~ -
すみません。だめでしたね。失礼いたしました。
-
Puさん
(mnさんのスレッドですみませんが)
trim(V_A100 ) & ',' & VarName('A'VAR+LoopCounter() )
trim(V_A100 ) & VarName('A'VAR+LoopCounter() ) & ',' でもいいでしょうね。
サインインしてコメントを残してください。
コメント
24件のコメント