2013-01-06 22 views
10

このコンソールアプリケーションは、.txtファイルをディスクに書き込みます。C#コンソールアプリケーション用に文字列にタブを挿入するにはどうすればよいですか?

ユーザーは、これらの.txtファイルをExcelにインポートして、正しくフォーマットされているため、タブを使用する予定です。

私は "いくつかの他の文字列/T/Tいくつかの他の文字列いくつかの文字列/トン" このナンセンスを得続けます。 Environment.NewLineのようなEnvironment.Tabはありません。

私の文字列に/ tではなくタブを取得するにはどうすればよいですか?

私は方法があると確信しています。それはおそらく私が一日中応答しなくてはならないと明白になるでしょう。

(私が使用する必要がありますだけでなく、他のソリューションに開いている|。またはいくつかの他の区切り文字/文字)の文字列で

+1

いいえタブ文字に使用する定義済みの定数がありません。この同じ質問を見てください。[.NETでタブ文字をプログラム的に使用する](http://stackoverflow.com/questions/2686536/programmatically-using-tab-character-in-net)ところで、それは '\ t'ではありません'/ t' – Steve

答えて

27

タブは通常\t、ない/tを書かれています。文字列を正しくエスケープしていますか?

+10

この正解時の私の恥ずかしさの程度は明白ではありません。 – Thomas

+0

@トーマス...自分では大変なことはありません。誰もが日曜日にsh * tyの日を持つことができます:) –

3

最終的にインポートされるテキストファイルを作成するのが目的ならば、なぜExcelでカンマ区切りの値を使用しないのですか?詳細情報 http://en.wikipedia.org/wiki/Comma-separated_values

+0

文字列にはカンマがたくさんあるので、この例文「10グラムの水、20グラムの小麦粉を使用してください」となります。列B「20グラムの粉」は、私が欲しいものが列Aの文全体です。 – Thomas

+1

http://stackoverflow.com/questions/769621/dealing-with-commas-in-a-csv-file http:// tools .ietf.org/html/rfc4180 CSV値を処理するためのサンプルコード。実際のカンマをエスケープする必要があるため、あなたのものは列に分割されています。 – JLRishe

+0

確かに? "/ t"問題が "\ t"で解決されたので、私はまだ列の分離を取得していないので、代わりにコンマを使用することがあります。ありがとう。 – Thomas

3

技術的には、.NETにタブ定数があります。 Microsoft.VisualBasic.dllにあります。

var tab = Microsoft.VisualBasic.Constants.vbTab; 

しかし、vbTabを使用する理由はありません。\ tを使用するだけで同じ結果が得られます。

+2

あなたは.NETのタブ定数を求めていました。それはMicrosoft.VisualBasicにあります。dllは\ tと同じですが、MS定数だけです。必要に応じて、Microsoft.VisualBasic.Constantsに多くの文字定数を見つけることができます。また、Microsoft.VisualBasic.dllは.NETの一部であり、VisualBasicにもVisualBasicに固有のものではなく、VisualBasicもC#でも使用できると言われています。 –

2

あなたは本当に今あなたが

string test = "MyFirstString" + MyUtility.Tab + "MySecondString" + MyUtility.Tab ....... 
....あなたのタブで区切られた文字列を構築するためにあなたのコード内で使用することができ、この \t質問、なぜシンプルなユーティリティクラスを記述しない

public static class MyUtility 
{ 
    public static string Tab 
    { 
     get{return "\t";} 
    } 
} 

でうんざり感じた場合

でも、なぜですか?、あらかじめ定義された定数を使用しない理由はありませんstandard escape sequence

+0

これはかなり可愛いです。私はそれを盗んで貪欲に使用します。 – Thomas

+0

[Escape Sequences](http://msdn.microsoft.com/en-us/library/h21280bw.aspx)に感謝します。 ASCII文字を16進表記で扱う方法を常に知りたがっていたことを認めて、私は冗談です。そして垂直のタブ!一体全体。それは新しいもののsmörgåsbordです。 – Thomas

関連する問題