複数のテーブルより取得したデータをcsv形式のファイルで
保存する機能を考えています。
SaveDaialogを用いて保存自体はできていますが、拡張子を手動で
記述しないといけません。
Filterプロパティで、
ファイル名をCSVファイル(*.csv)とし、
フィルタを*.csvとしています。
設定がまだ不足しているのでしょうか?
ご存知の方、宜しくご指導お願いします。
あんまりイジメみたいレスはしたくないのですが.
>記述しないといけません。
拡張子を手動で記述しないといけないのですか.
それとも手動で記述したくないのですか.
読めばわかるだろう!! って言いたいかも知れませんが...
>フィルタを*.csvとしています。
その保存しようとしいてるデータはCSV形式のデータなのでしょうか.
拡張子を手動で指定して保存したデータはCSVのデータになっていますか.
どうやらCSVファイルのことには特に限らず、SaveDialogのことで詰まっているようですね。
SaveDialogの使い方が、まだよく理解できていないようです。(わたしもVBやってきたくせに、最初のうちは理解できてませんでしたけど)
※ 以後文中で*は、0文字以上の任意文字を、?は任意の一文字を現します。
Filterというのは、表示するファイルを、フィルタに書けるための文字列です。
"コンマ区切りテキストファイル(*.csv)|*.csv|" とかいう風に書くと思います。
パイプ記号(|)より前の部分は、すべてフィルタの説明文(括弧の中の文字は、フィルタ内容を明示しているだけ)です。
で一つ目のパイプ記号から、次のパイプ記号までが、フィルタ文字です。
*.csv ですから、"拡張子がcsvのファイルすべてを表示(それ以外はフォルダを除き表示しない)"となります。
まあここは、よそで何度も見知ってるはずなので、言うまでもないでしょうが。
次に、DefaultExtですが、これは、SaveDialog上で拡張子を指定し(.*のような入力が)なかったときに、付加される拡張子です。
たとえば、"savedata"というファイル名でOKボタンを押したとします。
DefaultExtプロパティに"csv"と書いていれば、"savedata.csv"が返ります。
同じ要領で、DefaultExtが"mid"なら、"savedata.mid"が返るわけです。
対して、"savedata.csv"と書いたときには、
すでに拡張子があるので、DefaultExtの設定にかかわらず、入力したまんまの"savedata.csv"が返ります。
こっちはフィルタと違い、あんまりプログラミング以外ではお目にかからないので、困惑するかもしれません(現に困惑しているようですし)。
考えてみれば簡単なのですけどね。
あなたが言いたいのは、"拡張子を書かないで、保存ダイアログを閉じたときに、ファイル名がそのまま返るから困る、拡張子csvを付け足さなきゃいけないのか"ということでしょう?
ならば、DefaultExtで、"拡張子がついてなかったときに、付加する拡張子"を指定してやればよいのです。
なんか丁寧に書きすぎましたかね(-_-;)
> その保存しようとしいてるデータはCSV形式のデータなのでしょうか.
拡張子は、単なる符号に過ぎません(まあ、csvという拡張子なら、9割方はコンマ区切りテキストファイルなんでしょうが)。
なのでこの場合、"データが実際にCSVかどうか"は、関係ないはずですけど?
(極端な話、explorer.exeをコピーして、explorer.csvにしても、"エクスプローラからの見た目は"ただのCSVファイルですし)
Mr.XRAYさん たかみちえさん ご指導ありがとうございました。
Mr.XRAYさん、説明不十分で申し訳ありません。
拡張子は手動で記述したくなく、拡張子を付けたファイルは
CSV形式のファイルとして保存されています。
たかみちえさんのご指導のおかげで解決することができました。
今後、またの機会では宜しくお願い致します。
たかみちえさん、丁寧なご指導ありがとうございました。
プロパティの設定とは疑ってましたが、やはり…といった感じです。
今後、機会があればご指導宜しくお願いします。
>なのでこの場合、"データが実際にCSVかどうか"は、関係ないはずですけど?
ハハハハッ,私の勘違いです.最初の質問の文章をよく読めばわかった
はずなのですが,
もしかしたら,拡張子の問題の前に,データファイルをCSVなどに変換し
て保存する問題なのかと思ってしまったものですから.
とんこつさん,不愉快な思いをさせてしまって,ゴメンなさい.
ツイート | ![]() |