private void Save_(object sender, EventArgs e) { int NbEmploye = 0; SEmploye emp = default(SEmploye); FileStream Temporaire = new FileStream(Directory.GetCurrentDirectory() + @"\Replacement.tmp", FileMode.Create, FileAccess.Write, FileShare.None); BinaryWriter BWE = new BinaryWriter(Temporaire); for (int i = 0; i < m_NbreEnrg; i++) // Transférer tout le fichier d'index dans le nouveau fichier temporaire { bool Flag = !m_Index[i].ADetruire; if (Flag) { emp.Lire(m_Index[i].Position, m_FSE, m_BRE); m_Index[i].Position = Temporaire.Position; emp.Ecrire(Temporaire, BWE); NbEmploye++; } } //On ferme tout m_BRE.Close(); m_FSE.Close(); m_BWE.Close(); BWE.Close(); Temporaire.Close(); File.Replace("Replacement.tmp", "Employes.don", "Employe.bak"); //On réécrit les bonnes valeurs qui doivent êtres présentes dans le fichier FileStream FichierIndex = new FileStream(Directory.GetCurrentDirectory() + @"\Index.ndx", FileMode.Truncate, FileAccess.Write, FileShare.None); BinaryWriter bwe = new BinaryWriter(FichierIndex); string Signature = "Index Employés"; FichierIndex.Seek(0, SeekOrigin.Begin); bwe.Write(Signature); bwe.Write(NbEmploye); //Réécriture for (int i = 0; i < m_NbreEnrg; i++) // Transférer tout le fichier d'index dans le nouveau fichier temporaire { bool Flag = !m_Index[i].ADetruire; if (Flag) { bwe.Write(m_Index[i].ADetruire); bwe.Write(m_Index[i].Cle); bwe.Write(m_Index[i].Position); } } FichierIndex.Close(); bwe.Close(); this.Form1_Load(sender, e); }
//****************************************************************** // // Ce bouton est là pour se déboguer // à retirer pour la remise du projet // //******************************************************************* private void btnAfficher_Click(object sender, EventArgs e) { string s = ""; SEmploye emp = default(SEmploye); int pos = 0; m_FSE.Seek(0, SeekOrigin.Begin); for (int i = 0; pos < m_FSE.Length; i++) { emp.Lire(pos, m_FSE, m_BRE); s += "Numéro d'employé : " + (emp.Nom).ToString() + "\tNom : " + (emp.Nom).ToString() + "\tSalaire : " + (emp.Salaire).ToString() + "\n"; pos = (int)this.m_FSE.Position; } MessageBox.Show(s); }
private void btnRechercher_Click(object sender, EventArgs e) { int i = 0, NoEmploye; m_BRE = new BinaryReader(m_FSE); SEmploye PEmp = new SEmploye(); bool ConversionNo = Int32.TryParse(txtNumero.Text, out NoEmploye); if (!ConversionNo)//Savoir si on a pu trouver le dossier associé au numéro. { MessageBox.Show("Vous devez entrer un numéro d'employé valide pour le rechercher.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } while (i < m_NbreEnrg && m_Index[i].Cle != NoEmploye) { i++; } if (i == m_NbreEnrg && m_Index[i].Cle != NoEmploye) { MessageBox.Show("L'employé que vous essayez de trouver n'existe pas.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); btnModifier.Enabled = false; btnSupprimer.Enabled = false; txtNom.Text = ""; txtSalaire.Text = ""; return; } else { long Position = m_Index[i].Position; PEmp.Lire(Position, m_FSE, m_BRE); Affichage(PEmp); btnModifier.Enabled = true; btnSupprimer.Enabled = true; } }