2014-01-14 56 views
-4

我是c#的初學者,所以我有一個問題。我有一個文本文件,其中包含用逗號分隔的整數,像這樣;如何讀取c文本文件中的整數#

1,1.0,2.0,1.0,2,3.0,23.0,15.0,1.0

而在這個文件中有大約2000(也許更多)integers.I想在閱讀此整數文本文件由一個和一個列表組成。

我怎樣才能做到這一點?

謝謝...

所以感謝你的幫助我試了這個;

public List<double> getlist() 
    { 
     List<double> valuesList = new List<double>(); 

     string pat; 

     getfilelocation b = new getfilelocation(); 

     pat = b.getPath(); 

     System.IO.StreamReader rdr = System.IO.File.OpenText(pat); 
     string values = rdr.ReadToEnd(); 
     rdr.Close(); 
     string[] vls = values.Split(','); 

     foreach (string value in vls) 
     { 
      double d; 
      if (double.TryParse(value, out d)) 
      { 
       valuesList.Add(d); 
      } 

     } 

     return valuesList; 
    } 

這是真的嗎?

+1

爲什麼你有」 .0" 對多個條目,如果他們所有的意思是整數?你會如何處理「1.5」?文件中的值是否都在同一行上?我認爲你的意思是「一個接一個」而不是「一個接一個」 - 這是什麼原因? –

+7

您可以先嚐試編寫代碼。然後,當你遇到問題時,創建一個問題,並解釋你到底卡在哪裏。 – gleng

+0

我研究了這一點,但所有的答案是不同的一個人使用TextReader,其他人使用FileStream等... –

回答

1

有很多方法。這裏有一個基本的方法:

將整個內容讀入字符串。

System.IO.StreamReader rdr = System.IO.File.OpenText("c:\\myfile.txt") 
string stringvalues = rdr.ReadToEnd(); 
rdr.Close(); 

然後用逗號分割值:

string[] stringvalues = csvintegers.split(','); 

然後將其轉換成雙打(你說的整數,但我看到decimials,所以我會建議你用雙打)。

List<double> doublevalues = new List<double>(); 
foreach(string value in stringvalues) 
{ 
    doublevalues.Add(double.Parse(value)); 
} 

現在你有值的列表...

-2

您可以使用分割法:

閱讀與此代碼:

string value1 = File.ReadAllText("C:\\file.txt"); 

以及與此代碼,你可以拆分後,拆分

string[] words = value1 .Split(','); 

您可以通過一個轉換爲一個

+2

-1你有沒有真正自己寫答案? – gleng

+0

這個評論部分究竟發生了什麼? – Nico

0

既然你是初學者,這裏有一些幫助:

 var file = File.ReadAllText("yourPath"); 
     var list = new List<double>(); 
     foreach (var s in file.Split(',')) 
     { 
      double d; 
      if (double.TryParse(s, out d)) 
       list.Add(d); 
     }