The Keeper
2009-12-03, 20:08:20
Hallo,
ich versuche mich gerade an der Programmierung eines Telefonbuchs.
Dabei werden Name und Nummer via FileStream in eine Datei geschrieben und einzeln in ListBoxen ausgegeben.
Ich habe vorsichtshalber die GUI angehängt.
Die Gruppe "Datenbankverbindung" einfach nicht beachten.
Dies ist der Code, mit dem ich die Daten in eine Datei schreibe:
private void b_save_Click(object sender, EventArgs e)
{
try
{
CSatz class_csatz = new CSatz();
FileStream fs_filepath = new FileStream("F:\\database\\phonebook.phb", FileMode.Append, FileAccess.Write);
BinaryFormatter bf_strom = new BinaryFormatter();
class_csatz.var_number = Convert.ToInt32(tb_number.Text);
class_csatz.var_name = tb_name.Text;
class_csatz.var_bname = tb_bname.Text;
class_csatz.var_id = var_lastid + 1; //damit jeder Datensatz eine eindeutige ID besitzt
var_lastid = var_lastid + 1; //Zählvariable für neuen Eintrag erhöhen
bf_strom.Serialize(fs_filepath, class_csatz);
fs_filepath.Close();
}
catch (Exception)
{
MessageBox.Show("Eingabe überprüfen!");
}
}
Und damit lese ich es wieder aus:
private void b_sort_Click(object sender, EventArgs e)
{
FileStream fs_filepath = new FileStream("F:\\database\\phonebook.phb", FileMode.Open, FileAccess.Read);
BinaryFormatter bf_strom = new BinaryFormatter();
CSatz class_csatz = new CSatz();
class_csatz = (CSatz)bf_strom.Deserialize(fs_filepath);
fs_filepath.Seek(var_pos, 0);
lb_nachname.Items.Add(class_csatz.var_name);
lb_vorname.Items.Add(class_csatz.var_bname);
lb_nummer.Items.Add(class_csatz.var_number);
lb_ziffer.Items.Add(class_csatz.var_id);
fs_filepath.Close();
}
Jedes Detail wird in einer bestimmte Listbox ausgegeben. Jedoch wird damit nur der erste Datensatz ausgegeben.
Wie schaffe ich es, das alle Einträge mit einmal ausgegeben werden. Ich finde einfach keinen Ansatz, da ich mich mit der Ansteuerung der einzelnen Datensätze nicht so gut auskenne.
Bin für jede Hilfe dankbar!
MFG
The Keeper
ich versuche mich gerade an der Programmierung eines Telefonbuchs.
Dabei werden Name und Nummer via FileStream in eine Datei geschrieben und einzeln in ListBoxen ausgegeben.
Ich habe vorsichtshalber die GUI angehängt.
Die Gruppe "Datenbankverbindung" einfach nicht beachten.
Dies ist der Code, mit dem ich die Daten in eine Datei schreibe:
private void b_save_Click(object sender, EventArgs e)
{
try
{
CSatz class_csatz = new CSatz();
FileStream fs_filepath = new FileStream("F:\\database\\phonebook.phb", FileMode.Append, FileAccess.Write);
BinaryFormatter bf_strom = new BinaryFormatter();
class_csatz.var_number = Convert.ToInt32(tb_number.Text);
class_csatz.var_name = tb_name.Text;
class_csatz.var_bname = tb_bname.Text;
class_csatz.var_id = var_lastid + 1; //damit jeder Datensatz eine eindeutige ID besitzt
var_lastid = var_lastid + 1; //Zählvariable für neuen Eintrag erhöhen
bf_strom.Serialize(fs_filepath, class_csatz);
fs_filepath.Close();
}
catch (Exception)
{
MessageBox.Show("Eingabe überprüfen!");
}
}
Und damit lese ich es wieder aus:
private void b_sort_Click(object sender, EventArgs e)
{
FileStream fs_filepath = new FileStream("F:\\database\\phonebook.phb", FileMode.Open, FileAccess.Read);
BinaryFormatter bf_strom = new BinaryFormatter();
CSatz class_csatz = new CSatz();
class_csatz = (CSatz)bf_strom.Deserialize(fs_filepath);
fs_filepath.Seek(var_pos, 0);
lb_nachname.Items.Add(class_csatz.var_name);
lb_vorname.Items.Add(class_csatz.var_bname);
lb_nummer.Items.Add(class_csatz.var_number);
lb_ziffer.Items.Add(class_csatz.var_id);
fs_filepath.Close();
}
Jedes Detail wird in einer bestimmte Listbox ausgegeben. Jedoch wird damit nur der erste Datensatz ausgegeben.
Wie schaffe ich es, das alle Einträge mit einmal ausgegeben werden. Ich finde einfach keinen Ansatz, da ich mich mit der Ansteuerung der einzelnen Datensätze nicht so gut auskenne.
Bin für jede Hilfe dankbar!
MFG
The Keeper