ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

C#コミュのファイル操作に関して

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こんにちは。
私はいま文字列をファイルに書き込もうとしています。

StreamWriter sw0 = new StreamWriter(@"D:\aaa.txt",true,
System.Text.Encoding.GetEncoding(932));
sw0.Write(xxx.ToString().PadLeft(1,' '));
sw0.Close();
こんな感じです。
値xxxは2500個出てきてテキストファイルに書き込まれるんですが、書き込むときに50列50行にしたいのです。どうしたらいいでしょうか??

コメント(15)

for文を使ったらどうでしょう。
xxxの型は何ですか?int[]ですか?
ループで回して改行したい回数に達したら WriteLine すれば良いかと
どう書く*べき*か、は
「50列にしたい」と「50行にしたい」の
どちらが要件として優先されるかに依りますなあ。

むしろ encoding の指定に 932 なんて数値をどこで覚えたのか気になる…
私は "Shift_JIS" を使います。
>たねりん
xxxの値はたぶんint[]です。
> ドトール @C++勉強中
> 上美谷✿
すいません初心者でして。。
サンプルなどを参考に引用してるんですよ。
padleftのあたりをいじったらどうにかなるものと思ってたんですがね。わかりません↓
//aryxxx = int[]

using (StreamWriter sw = new StreamWriter(@"D:\aaa.txt",true, System.Text.Encoding.Default))
{
 for(int = 0; i < aryxxx.Count; i++)
  sw.Write(aryxxx[i].ToString() + ((i % 50 == 49) ? "\r\n" : " "));
}
for文とStreamWriterのWriteメソッドとWriteLineメソッドを覚えればできるようになりますよ。
サンプルはサンプルですから、それを書き換えるには勉強が必要です。まだ勉強してないことができないのは当たり前ですから、できないことはできないとあきらめて先に進みましょう。


>上美谷さん
本題と外れますが、 "Shift_JIS" より 932 のほうが速そうな気がします。for文とか使って繰り返すときは有効かもしれないです。
>エセ琢磨(旧stream) サン
ありがとうございます。
もうちょっと勉強します(>_<)
>エセ琢磨(旧stream) さん
GetEncoding()はStreamWriterクラスのコンストラクタに渡すEncodingオブジェクトを取得する時に一回呼ばれるだけなので、ほとんど速度に影響ないのでは?
>はらこさん、上美谷さん

For内でswを作成するとしても、そもそもSystem.Text.Encoding.GetEncoding()の時点で4回もポインタ見てるので、それなら

Encoding sjis = System.Text.Encoding.GetEncoding("Shift_JIS");
for{}

のが断然早いと思いますよ。
当然、可読性を考えると名前を指定してやるほうが開発効率は上がりますね・・・

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

C# 更新情報

C#のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。