@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

csvの取り込みと吐き出し

1
投稿者投稿内容
lagna
常連さん
会議室デビュー日: 2003/11/06
投稿数: 27
投稿日時: 2008-10-09 22:03
 いつも楽しく拝見させていただいております。
初歩的な質問で、大変申し訳ないのですが、ひょんなことからC#(windowsXP pro framework1.1)でちょっとした変換ソフトを作ることになり奮闘しておりまして、ご相談させてください。

inFile.csv
(納品日(8桁),店舗コード(1〜3桁),受注数(1〜2桁),商品コード(4桁),)
/******************
20081009,111,1,0001
20081009,12,12,0002
/******************

を読み込んで、最終的には
outFile.csv
(納品日(8桁),店舗コード(6桁),商品コード(6桁),受注数(2桁))
/******************
20081009,000111,000001,01
20081009,000012,000002,12
/******************
というように、桁数を固定し、並び等を変更したいのです。

今は
StreamReader reader_file = new StreamReader("inFile.csv");
で読み込んで、カンマ区切りで分割し、二次配列(iは行kは列などなど)
data[i][k]などに読み込まして、ファイル出力すればいいのだと思うのですが、C#をはじめて触る(小生PHP,Perlプログラマ)こともあり、苦戦しております・・・。
もしよろしければサンプルに近いものなどありましたらぜひご紹介下さい。
どうぞよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-10-09 22:25
引用:

lagnaさんの書き込み (2008-10-09 22:03) より:

今は
StreamReader reader_file = new StreamReader("inFile.csv");
で読み込んで、カンマ区切りで分割し、二次配列(iは行kは列などなど)
data[i][k]などに読み込まして、ファイル出力すればいいのだと思うのですが、


それではダメですね。 引用符の考慮がありません。 CSV ではデータにカンマや改行を含めても良いことになっています。

.NET Framework 2.0 に切り替えて TextFieldParser クラスを使うことをお勧めします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
やじゅ
常連さん
会議室デビュー日: 2008/07/15
投稿数: 28
お住まい・勤務地: 静岡市
投稿日時: 2008-10-10 01:13
>もしよろしければサンプルに近いものなどありましたらぜひご紹介下さい。

CSV形式のファイルをDataTableや配列等として取得する
http://www.atmarkit.co.jp/bbs/phpBB/reply.php?topic=46764&forum=7

DataTableや配列等をCSV形式のファイルとして保存する
http://dobon.net/vb/dotnet/file/writecsvfile.html
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-10-10 01:23
http://jeanne.wankuma.com/tips/csharp/string/substring.html


http://www.kisoplus.com/sample2/sub/format.html



http://msdn.microsoft.com/ja-jp/library/4y78s7xa(VS.80).aspx
lagna
常連さん
会議室デビュー日: 2003/11/06
投稿数: 27
投稿日時: 2008-10-12 14:18
ぴあちゃん様、やじゅ様、じゃんぬねっと様
返信のほう、大変ありがとうございます。

 なんとかサンプルを見ながらですが、なりそうなので、引き続きがんばってきます。
 やってて気づきましたが、今は2.0のほうが便利そうですね・・・。

 考えながら奮闘します。また行き詰りましたらどうぞアドバイスのほどよろしくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)