我想計算一些字符串的數量並將其存儲到csv文件中。我試過了,但我不知道這是否是正確的方法,另外還有兩個問題。替換csv文件的數據/值
首先,這裏是我的方法:
public void CountMacNames(String macName)
{
string path = @"D:\Counter\macNameCounter.csv";
if (!File.Exists(path))
{
File.Create(path).Close();
}
var lines = File.ReadLines(path);
foreach (var line in lines)
{
bool isExists = line.Split(',').Any(x => x == macName);
if (isExists)
{
// macName exists, increment it's value by 1
}
else
{
// macName does not exists, add macName to CSV file and start counter by 1
var csv = new StringBuilder();
var newLine = string.Format("{0},{1}", macName, 1);
csv.AppendLine(newLine);
File.WriteAllText(path, csv.ToString());
}
}
}
的第一個問題是這樣的IOException異常:
該進程無法訪問該文件 'd:\櫃檯\ macNameCounter.csv' 因爲它正在被另一個進程使用。
第二個問題是,我不知道如何通過一個遞增的值,如果一個macname的CSV文件存在(見的第一個評論)
編輯:舉例法「CountMacNames」電話:
- CountMacNames(「Cansas」);
- CountMacNames(「Wellback」);
- CountMacNames(「Newton」);
- CountMacNames(「Cansas」);
- CountMacNames(「Princet」);
然後,CSV文件應包含:
- Cansas,2
- Wellback,1
- 牛頓,1
- Princet,1
廣告1:如果macNameCounter.csv在其他程序中打開(FE記事本++),關閉它。 – stefankmitph
廣告2:macName聽起來像'一個名字'。它是什麼樣的名字?舉個例子。 – stefankmitph
@stefankmitph它沒有在其他程序中打開 – Stampy