1

これは簡単な質問だと思いますが、それは完全に私を悩ませます。アイテムと呼ばれるサイズ64の文字列配列があります。アイテムの各アイテムをテキストファイルに書き込み、各値をタブで区切ります。ただし、次のコードを試してみると、各項目とタブが書き込まれ、次に新しい行が書き込まれます。行ごとではなく、すべての配列を1行に書き込むにはどうすればよいですか?

using (System.IO.StreamWriter file = new System.IO.StreamWriter(path1+custFile))
    for(int i=0; i<64; i++)
        file.WriteLine(items[i].ToString()+"\t");

結果:

1002H0025   
Sample test Customer    

Foo 
Mr  
123 FAKE STREET 

sAN JOSE    

などなど、タブ自体を上記から除外しました。1002H0025サンプルテストCustomerFooMr 123 FAKE STREETsANJOSEである必要があります

4

3 に答える 3

4

現在WriteLine()、ループ内で使用しています。

Write()代わりに使用してみてください。

WriteLine\n出力に書き込んだ後、改行( )を出力します。

于 2012-12-12T23:44:41.630 に答える
4

ええ、見てください-あなたはこれを繰り返し呼んでいます:

file.WriteLine(items[i].ToString()+"\t");

名前がはっきりしているように、これは行ターミネーターを含む行を書き込みます。これを...に変更することもできfile.Writeますが、ループを完全に取り除くことをお勧めします。

file.WriteLine(string.Join("\t", items));

または、ライターも削除します。

string path = Path.Join(path1, custfile);
File.WriteAllText(path, string.Join("\t", items));
于 2012-12-12T23:45:09.920 に答える
0

savefiledialogを使用してテキストファイルに値を保存する必要があります。すべてが機能しますが、iamはすべての出力を表示できず、1行しか表示されません。

   SaveFileDialog savefile = new SaveFileDialog();
   savefile.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
   if (savefile.ShowDialog() == DialogResult.OK)
   {
       using (FileStream fs = new FileStream(savefile.FileName, FileMode.Append, FileAccess.Write))
       using (StreamWriter writer = new StreamWriter(fs))
       {
           writer.WriteLine("northing:{0},easting:{1}", AE, AF);
           writer.Close();

       }

得られたo/pは北向き:234567.89、東向き:23456.89、他の線は表示されません

于 2016-08-18T10:31:17.377 に答える