2016-06-28 104 views
0

因此,我的組合框中的列表來自文本文件。該程序允許用戶從組合框中選擇一個項目。選定的項目應該從組合框和文本文件中刪除,也可以通過點擊按鈕。如何從文本文件中的組合框中刪除選定的項目

該代碼允許程序來從文本文件中的項目,我的組合框:

string location = @"C:\\Users\\LMCPENA98\\Desktop\\COE114LPROJECT_MILLENNIUM_PAWS\\MillenniumPaws\\MillenniumPaws\\bin\\Debug\\Files.txt"; 
string[] temp = File.ReadAllLines(location); 
int[] TagNumber = new int[temp.Length]; 
string[] Breed = new string[temp.Length]; 
string[] Name = new string[temp.Length]; 
decimal[] Price = new decimal[temp.Length]; 
//Getting all the values i the text file 
for (int i = 0; i < TagNumber.Length; i++) 
{ 
TagNumber[i] = int.Parse(temp[i].Substring(0, temp[i].IndexOf("-"))); 
Breed[i] = temp[i].Substring(0, temp[i].IndexOf("+")); 
Breed[i] = Breed[i].Substring(Breed[i].LastIndexOf("-") + 1); 
Name[i] = temp[i].Substring(0, temp[i].IndexOf("=")); 
Name[i] = Name[i].Substring(Name[i].LastIndexOf("+") + 1); 
Price[i] = decimal.Parse(temp[i].Substring(temp[i].LastIndexOf("=") + 1)); 
} 

Pound p; 
for (int i = 0; i < Breed.Length; i++) 
{ 
if (Breed[i] == cmbBx_breed.Text) 
{ 
    p = new Pound(TagNumber[i], Name[i], Price[i]); 
    cmbBx_opts.Items.Add(p.GetEntry()); 
    } 
} 
} 
else 
{ 
cmbBx_breed.Text = null; 
} 

這是我如何讓知道我在做選擇的項目的程序:

private void btn_buy_Click(object sender, EventArgs e) 
{ 
    new MessageBox_TYBuying().Show(); 
    cmbBx_opts.Items.Remove(cmbBx_opts.SelectedItem); 
} 

因此,當我開始編程時,組合框中選定的項目現在被刪除,但不在文本文件中。我該怎麼做??

+0

爲什麼不使用.json文件或.xml文件?使用更好,更簡單.. – Furtiro

+0

我的團隊和我不知道如何使用這些文件 –

回答

0

沒有「從文本文件中刪除行」這樣的事情。你所能做的只是:

方法1)
打開原始文件並將所有行讀入List<string>。然後,遍歷所有這些列表條目並刪除需要刪除的條目。然後,將所有列表條目寫回文件。

方法2)
將原始文件重命名爲某個「備份」文件。打開用於讀取的備份文件以及用原始文件名寫入的新文件。逐行讀取備份文件。除了要刪除的行之外,將每行寫入輸出文件。

相關問題