2016-04-25 62 views
0

我正在編寫一個程序,它將競爭對手信息存儲在txt文件中。當需要時,這個程序需要通過點擊一個按鈕來擦除系統中的所有記錄。現在我已經能夠在「test.txt」中保存和加載競爭對手,但我不知道如何刪除已註冊的參與者。這裏是我構建和註冊人員的部分代碼。如何刪除已在txt文件中註冊的所有數據c#

public Competitor(string inCompetitorType, string inCompetitorName, string inCompetitorAddress, int inCompetitorScore, string inCompetitorNo) 
    { 
     CompetitorType = inCompetitorType; 
     CompetitorNo = inCompetitorNo; 
     CompetitorName = inCompetitorName; 
     CompetitorAddress = inCompetitorAddress; 
     CompetitorScore = inCompetitorScore;   
    } 
public virtual void Save(string fileName) 
    { 
     StreamWriter outputFile = new StreamWriter(fileName, true); 

     outputFile.WriteLine(CompetitorType); 
     outputFile.WriteLine(CompetitorNo); 
     outputFile.WriteLine(CompetitorName); 
     outputFile.WriteLine(CompetitorAddress); 
     outputFile.WriteLine(CompetitorScore); 

     outputFile.Close(); 

    } 

該位是我的存儲類,而不是我的競爭對手類

public string AddAmateurCompetitor(string inCompetitorName, string inCompetitor) 
    { 
     string CompetitorNo = GetNumber().ToString(); 
     Amateur newCompetitor = new Amateur(inCompetitorName, inCompetitorAdress, 0, CompetitorNo); 
     Competitors.Add(CompetitorNo, newCompetitor); 
     return CompetitorNo; 
    } 

請給我建議的方法刪除記錄功能,可以實現

+1

爲什麼不直接關閉文件並用常規系統調用刪除它? –

+1

爲什麼你不刪除文件? 'File.Delete(fileName)' –

+0

我需要刪除單個記錄,而不是刪除文件,因爲我需要整個文件在那裏。我想爲我將在原始記錄txt文件中創建的測試記錄實現刪除數據函數。 – Umut

回答

0

您可以使用此:

if(File.Exists(@"C:\test.txt")) 
{ 
    File.Delete(@"C:\test.txt"); 
} 

File.WriteAllText(path, String.Empty); 

OR

File.Create(path).Close(); 
0

如果你想刪除的行並不像您在您的評論提到的文件,你首先需要閱讀的文件。在讀取文件之後,您將遍歷流,只添加要保留的記錄。然後,您會將該集合寫入您的文件。

bool keep; 
    List<string> list = new List<string>(); 
    using (System.IO.StreamReader inputFile = new System.IO.StreamReader(fileName)) 
    { 
     string line; 
     while ((line = inputFile.ReadLine()) != null) 
     { 
       //detemine if keep is true 
       //also do anything else you need to with the data from the file here 
       if (keep) list.Add(line); 
     } 
    } 
    using (StreamWriter outputFile = new StreamWriter(fileName, false)) 
    { 
     foreach(string line in list) 
     { 
       outputFile.WriteLine(line) 
     } 
    } 

如果條件總是爲false,那麼每個記錄都將被刪除。

相關問題