2010-06-11 33 views
1

以我app.config文件我由如下面問題而配置在的app.config文件的Delimeter(「 t」的)(C#3.0)

<add key = "Delimeter" value ="\t"/> 

設定現在在訪問上述從該程序通過使用下面的代碼

string delimeter = ConfigurationManager.AppSettings["FileDelimeter"].ToString(); 
StreamWriter streamWriter = null; 
streamWriter = new StreamWriter(fs); 
streamWriter.BaseStream.Seek(0, SeekOrigin.End); 

Enumerable 
.Range(0, outData.Length) 
.ToList().ForEach(i => streamWriter.Write(outData[i].ToString() + delimiter)); 

streamWriter.WriteLine(); 
streamWriter.Flush(); 

我得到的輸出作爲

18804\t20100326\t5.59975381254617\t 
18804\t20100326\t1.82599797249479\t 

但是,如果我直接用"\t"分隔符變量我得到正確的輸出

18804 20100326 5.59975381254617  
18804 20100326 1.82599797249479 

我發現,當我在配置文件中指定的「\ t」的,並同時將其讀入

的分隔符變量,它成爲"\\t"這就是問題所在。

我甚至嘗試過,但沒有運氣。

我正在使用C#3.0。

需要幫助

回答

2

你需要使用代表標籤,我相信這是&#09;而不是C#表現(這是"\t"因爲你已經知道了)XML實體。

<add key="Delimeter" value="&#09;"/> 

或者你可以永遠只是採取簡單的出路:

// allow for <add key="Delimeter" value="\t"/> 
if (delimiter == @"\t") 
    delimiter = "\t"; 
+0

先生,你的程序的作品,但我的約束是因爲它在app.config中,因此任何用戶都可以修改。與unicode版本相比,「\ t」更加便於用戶使用。還有其他方式嗎? – Newbie 2010-06-11 03:27:17

+0

此後在app.config中,我無法放入unicode版本。 – Newbie 2010-06-11 03:27:41