- PR -

テーブルデータをテキストファイルへ出力した時の形式について

1
投稿者投稿内容
beck
常連さん
会議室デビュー日: 2004/04/14
投稿数: 24
投稿日時: 2004-08-20 13:28
 いつもお世話になっております。VS.NET2003,言語はC#で開発しています。
例えば品名、金額、消費税というテーブルデータを1行に連結し、項目間にはスペースを入れた文字列をテキストファイルに1行ずつ書き込んでいくと、
 
品名      金額  消費税
 ポテトチップス 100 5
パン 99 4
缶コーヒー 120 6

 というようにテキストファイルに書き込まれるのですが、ずれちゃってますよね(汗)。項目のデータ毎に文字の先頭を揃え、テキストファイルに書き込むことは出来るのでしょうか?アドバイスを頂きたく投稿させてもらいました。宜しくお願いします
m(_ _)m
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-20 13:51
諸農です。

string f = "{0,-20}{1,-20}";
Console.WriteLine(f,"1つ目","2つめ");

のような書式設定のことでしょうか?

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
beck
常連さん
会議室デビュー日: 2004/04/14
投稿数: 24
投稿日時: 2004-08-20 14:25
Jubeiさん、お返事ありがとうございますm(_ _)m

品名      金額  消費税
ポテトチップス 100 5
パン 99 4
缶コーヒー 120 6

上記のような表示形式を下のようにしたいんです。


品名      金額  消費税
ポテトチップス 100  5
パン      99    4
缶コーヒー   120   6


テキストファイルも座標を指定して書き込めるんですか?そうすれば簡単に出来るとは思いますが…

MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-08-20 14:39
全角半角バイト数 でしょうか?

Console.WriteLine(f,"1つ目---","2つめ");
Console.WriteLine(f,"1つ----","2つめ");
Console.WriteLine(f,"8","2つめ");
のこと?

挟み込む、空白数を自分で計算することも可能です。
@IT > Insider.NET > .NET TIPS > 文字列のバイト数を取得するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/012strcount/strcount.html

 @IT > Insider.NET > .NET TIPS > 文字列を連結するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/029strcat/strcat.html

あるいは、レコード全長のスペースを敷き詰めたバイト配列
に String → SJISバイトストリーム を 頭を決めて転記 もあります。
1件ごとにバイトストリーム出力。
固定長精神発揮するなら、こちらが本流かも。

[ メッセージ編集済み 編集者: MMX 編集日時 2004-08-21 01:04 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-20 14:48
String.Formatメソッド
標準の数値書式指定文字列
カスタム数値書式指定文字列


このへん?
beck
常連さん
会議室デビュー日: 2004/04/14
投稿数: 24
投稿日時: 2004-08-20 15:13
MMXさん、Jittaさん。アドバイスありがとうございますm(_ _)m
MMXさんの「固定長」という言葉と、Jittaさんの「String.Formatメソッド」で解決できそうです。データ毎の長さを固定しておけば、同じ項目のデータの先頭が揃いそうです。
スレッドで図示して説明したんですが、紛らわしいことになって申し訳ありませんでした。
Jubeiさん、MMXさん、Jittaさん、身になるアドバイスありがとうございました。
1

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