2015-10-13 135 views
0

這是我的文本文件:如何從特定行中的文本文件中讀取數字?

Earnings: 17 

EarningsM: 2 

Level: 6 

如何設置這個數字爲整數?

我試圖

foreach (string line in File.ReadLines(@"C:\Program Files (x86)\makeeuro\work.txt")) 
    if (line.Contains("Earnings")) 
     button1.Text = line; 

,但我只需要數字,所以現在它的正常工作。這是我的整數:

int xp; 
int lvlg; 
int lvl; 

我需要把「收入」值XP,「EarningsM」爲lvlg和「級別」的拉特。

+1

是否總是以這種格式表示值? –

+0

如果你有嵌套的循環和條件,我建議你使用大括號。 'foreach(...){if(statement)...}' – Kai

回答

1

試試這個:

IEnumerable<string> lines = File.ReadLines(@"C:\Program Files (x86)\makeeuro\work.txt"); 
Dictionary<string, int> values = lines 
    .Where(l => !string.IsNullOrEmpty(l)) 
    .Select(s => s.Split(':')) 
    .ToDictionary(split => split[0], split => int.Parse(split[1])); 

然後你就可以通過名字像這樣來訪問你的整數值:

int xp = values["Earnings"]; 

等等。

當然,這是非常粗糙,沒有錯誤檢查,我將離開你作爲練習;-)

解釋有關LINQ運算符的位:

Where操作員搭乘擺脫空行。

Select運算符分割每行:,並將其投影到包含兩個字符串(鍵和值)的數組中。

ToDictionary操作員通過選擇分隔的第一個項目作爲關鍵字,第二個作爲值創建詞典。

乾杯

+0

您還需要在'split [1]'中添加'.Trim()'以刪除空格。 – Enigmativity

+0

@Enigmativity其實,int.Parse()「吃」的空間。根據MSDN,格式爲「[ws] [sign] digits [ws]」。 –

+0

@Luc Morin,非常感謝你:))) – ArN01d

相關問題