CSVファイルの出力のレイアウトで


ツボ  2004-09-02 19:57:37  No: 116100

VB初心者です。始めまして質問をさせて下さい。
環境
・VB6.0 SP5
・Windows2000
VBでDBの内容を読み込んでCSVファイルに出力する時のレイアウトなのですが、
このような形で出力が出来るのでしょうか?

項目名  :A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 
          == == == == == == == == == ==
データ1:AA AA AA AA AA AA AA B1 B2 B3
データ2:AA AA AA AA AA AA AA C1 C2 C3
データ3:AA AA AA AA AA AA AA D1 D2 D3
データ4:BB BB BB BB BB BB BB E1 E2 E3
データ5:BB BB BB BB BB BB BB F1 F2 F3
のデータが入っている時に、その内容をVBからCSVファイルに出力する時に
データ1〜3はA1〜A7まで一緒なのでA8〜A10を一つにまとめる事は可能か?

通常CSVファイルに出力する時は、
AA,AA,AA,AA,AA,AA,AA,B1,B2,B3
AA,AA,AA,AA,AA,AA,AA,C1,C2,C3
AA,AA,AA,AA,AA,AA,AA,D1,D2,D3
BB,BB,BB,BB,BB,BB,BB,E1,E2,E3
BB,BB,BB,BB,BB,BB,BB,F1,F2,F3
この形で出力できると思いますが、今自分が質問している出力の形は、
AA,AA,AA,AA,AA,AA,AA,B1,B2,B3,C1,C2,C3,D1,D2,D3
BB,BB,BB,BB,BB,BB,BB,E1,E2,E3,F1,F2,F3
にしたいのですが、やり方が分かりません教えて下さい。

質問に至らない点があるかと思いますが宜しくお願い致します。


ツボ  2004-09-03 01:29:56  No: 116101

この様な編集の仕方は、出来ないのでしょうか?
色々、調べたのですがさっぱりです。
ReDim関数を使うと出来るのでしょうか?
宜しくお願いします。


ABC  2004-09-03 01:34:16  No: 116102

一例ですが参考にどうぞ

1)現在の行とその1つ前のそれぞれのフィールドの値を覚えておく変数を用意します。
2)次に現在読み取ったフィールドのA1〜A7の値を1つ前の行のA1〜A7と比較します。
3)A1〜A7までが現在の行と1つ前の行で全て一致していればB1〜B3をCSVで追記します。
4)そうでないばあいは改行し次の行にA1〜B3の値をCSVで書き出します。(ただし改行はしません)
5)データベースの全レコード分上記作業を繰り返せばできあがりです。


じゃいあん  2004-09-03 02:00:01  No: 116103

Dictionaryオブジェクトを使うと簡単にできますね。
A1〜A7をDictionaryとして、同じ場合は対応する吐き出し用の配列に追加or直接CSVに追記で良いかと。


ツボ  2004-09-03 04:39:33  No: 116104

Dictionaryオブジェクトをヘルプ等みてロジックを組んでみたのですが
いまいち分かりません。
何かサンプル的なロジックの組み方を教えて下さい。


くま  2004-09-03 05:51:20  No: 116105

アルゴリズム的なものはABCさんが例を示してくださっていると思いますが。
Dictionaryオブジェクトの使い方が分からないということですか?
参照設定とかは分かりますか?
どの変まで分かっていますか?


じゃいあん  2004-09-03 23:09:01  No: 116106

くまさんも言われていますが何をどう調べてどこがわからないのですか?
DictionaryオブジェクトはMSDNのヘルプだけでは難しいかもしれませんので、他もいろいろ調べてみてください。

ちなみに、私はサンプルソースは開示しないスタンスです。
開示するのは簡単ですが、それを組み込んでわかったような気になって終わってしまうのは、本人にも良くないと考えるからです。
初心者ならばなおさら調べること、試行錯誤することが力になりますのでがんばってください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加