它是如何將有可能搜索字符串如#Test1在一個文本文件中,然後輸出它下面的一行作爲一個字符串,例如搜索在C#和輸出線作爲字符串的關鍵詞
Test.txt的
#Test1
86/100
#Test2
99/100
#Test3
13/100
所以如果Test2的#是搜索關鍵字「二百分之九十九」就會變成一個字符串
它是如何將有可能搜索字符串如#Test1在一個文本文件中,然後輸出它下面的一行作爲一個字符串,例如搜索在C#和輸出線作爲字符串的關鍵詞
Test.txt的
#Test1
86/100
#Test2
99/100
#Test3
13/100
所以如果Test2的#是搜索關鍵字「二百分之九十九」就會變成一個字符串
解析文件一次,存儲在字典中的結果。然後在字典中查找。
var dictionary = new Dictionary<string, string>();
var lines = File.ReadLines("testScores.txt");
var e = lines.GetEnumerator();
while(e.MoveNext()) {
if(e.Current.StartsWith("#Test")) {
string test = e.Current;
if(e.MoveNext()) {
dictionary.Add(test, e.Current);
}
else {
throw new Exception("File not in expected format.");
}
}
}
現在,你就可以說
Console.WriteLine(dictionary["#Test1"]);
等
此外,長期的,我建議移動到一個數據庫中。
如何RegularExpressions? here's a good example
如果正上方是文件格式。那麼你可以用這個
1. read all lines till eof in an array.
2. now run a loop and check if the string[] is not empty.
Hold the value in some other array or list.
now you have items one after one. so whenever you use loop and use [i][i+1],
it will give you the test number and score.
希望這可能會有所幫助。
這應該爲你做它:
int lineCounter = 0;
StreamReader strReader = new StreamReader(path);
while (!strReader.EndOfStream)
{
string fileLine = strReader.ReadLine();
if (Regex.IsMatch(fileLine,pattern))
{
Console.WriteLine(pattern + "found in line " +lineCounter.ToString());
}
lineCounter++;
}
你嘗試過什麼?你有加載/處理文件或用*邏輯*這個問題嗎?這兩個問題是相當瑣碎(File.OpenText /的ReadLine和一個簡單的標誌要記住,如果最後一行開始與「#Text」將做的工作) – Carsten
重新標記功課 – Dani