2010-12-04 11 views
1

私はタイトルについて興味があります。iniファイルの nが機能しないのはなぜですか?

String a = "abc\ndef"; 
Console.Writeline(a); 

出力

abc 
def 

それからiniファイルにその値を保存し、そこから検索されます。

ini.iniwritevalue("a", "a", a); 
string b = ini.inireadvalue("a", "a"); 

次に、私はコンソールでそれを示しました。結果は以下の通りです:

abc\ndef 

私はiniファイルからそれを取得した後、なぜ\nが動作していませんか?

P.S.私はini.dllファイルを持っています。私たちの会社はそのDLLを使ってiniファイルを読み書きしています。

+0

3つの答えがすべて正しいので、どのように回答するのですか? – william

+0

あなたを最も助けてくれた回答を正しい回答としてマークすることができます。 –

答えて

3

ソースコードで\ nをエスケープコードの解釈は、コンパイラによって行われます。

実行時にファイルを「データ」として読み込んだだけでは、そのような解釈は必ず起こりません。

C#で\nだけで\とではありませんので、あなたが見つけるか、これは

1

は、あなたがこのように、値を書くときにスラッシュをエスケープする必要があります:ソースファイルを解析するとき

abc\\ndef 
3

エスケープシーケンスを含む文字列を受け取り、バイナリ値に変換する関数を書く(\ nは通常は0x0Aになる)する必要があるかもしれませんnではなく、特別な意味を持つエスケープシーケンスです。 \nは1文字とみなされ、行末です。あなたがファイルから\nを読むだけではそれは得られません。

おそらく、そこから\\nをお読みください。 \\も、\文字を意味するエスケープシーケンスです。 \\n\nと置き換えれば問題ありません。

string s = ... //get the value 
s = s.Replace("\\n", "\n"); 
関連する問題