我有一个功能有问题。功能" Usun"必须删除列表框中的两行和来自txt文件的相同数据**任何人都可以帮助我吗?
using System;
namespace BazaKlientow2
{
public partial class Form1 : Form
{
private Klient[] lista = new Klient[1];
public Form1()
{
InitializeComponent();
}
private void Write(Klient obj)
{
StreamWriter sw = new StreamWriter("Klienci.txt");
sw.WriteLine(lista.Length + 1);
sw.WriteLine(obj.Imie);
sw.WriteLine(obj.Nazwisko);
sw.WriteLine(obj.Firma);
sw.WriteLine(obj.NIP);
for(int x = 0; x <lista.Length; x++)
{
sw.WriteLine(lista[x].Imie);
sw.WriteLine(lista[x].Nazwisko);
sw.WriteLine(lista[x].Firma);
sw.WriteLine(lista[x].NIP);
}
sw.Close();
}
private void Read()
{
StreamReader sr = new StreamReader("Klienci.txt");
lista = new Klient[Convert.ToInt32(sr.ReadLine())];
for (int x = 0; x < lista.Length; x++)
{
lista[x] = new Klient();
lista[x].Imie = sr.ReadLine();
lista[x].Nazwisko = sr.ReadLine();
lista[x].Firma = sr.ReadLine();
lista[x].NIP = sr.ReadLine();
}
sr.Close();
}
private void Display()
{
listaKlientow.Items.Clear();
for( int x=0; x < lista.Length; x++)
{
listaKlientow.Items.Add(lista[x].ToString());
}
}
private void ClearForm()
{
txtImie.Text = String.Empty;
txtNazwisko.Text = String.Empty;
txtFirma.Text = String.Empty;
txtNip.Text = String.Empty;
}
private void dodaj_Click(object sender, EventArgs e)
{
Klient obj = new Klient();
obj.Imie = txtImie.Text;
obj.Nazwisko = txtNazwisko.Text;
obj.Firma = txtFirma.Text;
obj.NIP = txtNip.Text;
Write(obj);
Read();
Display();
ClearForm();
}
private void Form1_Load(object sender, EventArgs e)
{
Read();
Display();
}
private void sortuj_Click(object sender, EventArgs e)
{
Sortowanie();
Display();
}
private void Sortowanie()
{
Klient temp;
bool swap;
do
{
swap = false;
for(int x=0;x<lista.Length -1;x++)
{
if(lista[x].Imie.CompareTo(lista[x+1].Nazwisko) >0)
{
temp = lista[x];
lista[x] = lista[x + 1];
lista[x + 1] = temp;
swap = true;
}
}
} while (swap == true);
}
private void usun_Click(object sender, EventArgs e)
{
Usun();
}
private void Usun()
{
**//i cant do this. this function must delete both line in listbox and the same data from txt file**
}
}
}
答案 0 :(得分:0)
功能&#34; Usun&#34;必须删除列表框中的两行和来自txt文件的相同数据**任何人都可以帮助我吗?
您需要从文件中读取行并存储在List<string>
内存中。您还需要将DataSource
的{{1}}属性设置为这些行。如果要删除一行,请将其从内存中的ListBox
中删除。然后将整个列表写回文件。然后重置List<string>
的{{1}}属性。
这是一个例子。在这个例子中,我使用&#34; 1&#34;,&#34; 2&#34;创建一个文件。和&#34; 3&#34;作为线条。然后,当用户点击按钮时,我删除&#34; 1&#34;从内存列表中将列表写入文件。然后我刷新列表框。
DataSource