public override void Save(PersonenManager pm) { StreamWriter filewriter = null; try { filewriter = new StreamWriter(Filename); foreach (Person p in pm.PersonenReadOnly()) { filewriter.WriteLine(p.ToStringCSV()); } } catch (Exception ex) { throw new Exception("Fehler im WriteLine", ex); } finally { if (filewriter != null) { filewriter.Close(); } } }
private PersonenManager StringToList(string[] personen, PersonenManager pm) { for (int i = 0; i < personen.Length; i++) { string[] Split = null; Split = personen[i].Split(';'); switch (Split[0]) { case "M": if (Split[3] != "") { throw new Exception("Ein Mitarbeiter hat keine Prämie!!!"); } pm.AddPerson(new Mitarbeiter(Split[0], Split[1], Split[2])); break; case "V": if (Split[3] == "") { throw new Exception("Ein Vorgesetzter hat eine Prämie!!!"); } pm.AddPerson(new Vorgesetzter(Split[0], Split[1], Split[2], Convert.ToDouble(Split[3]))); break; } } return(pm); }
public override PersonenManager Load() { PersonenManager pm = new PersonenManager(); string[] persons = File.ReadAllLines(Filename); pm = StringToList(persons, pm); return(pm); }
static void ErstellenVonVorgesetzten(int anzahl, PersonenManager pm) { Vorgesetzter V = null; int counter = 0; while (counter < anzahl) { V = new Vorgesetzter(GetName(), GetMitarbeiterNr(), getPrämie()); pm.AddPerson(V); counter++; } }
static void ErstellenVonMitarbeiter(int anzahl, PersonenManager pm) { Mitarbeiter M = null; int counter = 0; while (counter < anzahl) { M = new Mitarbeiter(GetName(), GetMitarbeiterNr()); pm.AddPerson(M); counter++; } }
public override void Save(PersonenManager pm) { using (BinaryWriter bw = new BinaryWriter(File.Open(Filename, FileMode.Create))) { foreach (Person p in pm.PersonenReadOnly()) { if (p.PersonenTyp == "M") { WriteByteArrayToStream(bw, p); } else if (p.PersonenTyp == "V") { WriteByteArrayToStream(bw, p); byte[] Data = ConvertStringToByteArray(p.toPraemie()); WriteByteArrayWithPrefix(bw, Data); } } } }
private PersonenManager GetTheData(int counter, BinaryReader br, PersonenManager pm, byte Personentyp) { string[] TextData = new string[counter]; for (int idx = 0; idx < counter; idx++) { int NumberOfBytes = br.ReadInt32(); byte[] Data = new byte[NumberOfBytes]; for (int i = 0; i < NumberOfBytes; i++) { Data[i] = br.ReadByte(); } string Text = Encoding.ASCII.GetString(Data); TextData[idx] = Text; } pm = StringToList(TextData, pm, Personentyp); return(pm); }
private PersonenManager StringToList(string[] personen, PersonenManager pm, byte Personentyp) { switch (Personentyp) { case 77: if (personen.Length > 2) { throw new Exception("Ein Mitarbeiter hat keine Prämie!!!"); } pm.AddPerson(new Mitarbeiter(personen[0], personen[1])); break; case 86: if (personen[2] == "") { throw new Exception("Ein Vorgesetzter hat eine Prämie!!!"); } pm.AddPerson(new Vorgesetzter(personen[0], personen[1], Convert.ToDouble(personen[2]))); break; } return(pm); }
public override PersonenManager Load() { PersonenManager pm = new PersonenManager(); using (BinaryReader br = new BinaryReader(File.Open(Filename, FileMode.Open))) { byte Personentyp; while (br.BaseStream.Position != br.BaseStream.Length) { Personentyp = br.ReadByte(); if (Personentyp == 77) { int counterOfMitarbeiter = 2; pm = GetTheData(counterOfMitarbeiter, br, pm, Personentyp); } else if (Personentyp == 86) { int counterOfVorgesetzter = 3; pm = GetTheData(counterOfVorgesetzter, br, pm, Personentyp); } } } return(pm); }
static void Main(string[] args) { PersonenManagerSaverBinary pmsb = null; PersonenManagerSaverCSV pmsc = null; PersonenManager pm = null; try { string FileTyp; string FileName; char AuswahlSave = ' '; pm = new PersonenManager(); Person p = null; #region Auswahl ob Mitarbeiter oder Vorgesetzter char AuswahlPerson = ' '; int Anzahl = 0; AuswahlPerson = GetAValidChar('M', 'V', "Wollen Sie Mitarbeiter(M) oder Vorgesetzte(V) erzeugen!"); switch (AuswahlPerson) { case 'M': Anzahl = GetAValidNumber(1, 10, "Wie viele Mitarbeiter wollen Sie erstellen?"); ErstellenVonMitarbeiter(Anzahl, pm); break; case 'V': Anzahl = GetAValidNumber(1, 10, "Wie viele Vorgesetzte wollen Sie erstellen?"); ErstellenVonVorgesetzten(Anzahl, pm); pm.AddPerson(p); break; } #endregion #region Auswahl ob Binär oder in Csv Format Speichern AuswahlSave = GetAValidChar('B', 'C', "Wollen Sie Binär(B) oder im CSV(C) Format speichern? "); switch (AuswahlSave) { case 'B': pmsb = new PersonenManagerSaverBinary(); Console.WriteLine("Wie soll das File heißen: "); FileTyp = ".txt"; FileName = Console.ReadLine(); pmsb.Filename = FileName + FileTyp; pmsb.Save(pm); pm = pmsb.Load(); pm.PrintAll(); break; case 'C': pmsc = new PersonenManagerSaverCSV(); Console.WriteLine("Wie soll das File heißen: "); FileTyp = ".csv"; FileName = Console.ReadLine(); pmsc.Filename = FileName + FileTyp; pmsc.Save(pm); pm = pmsc.Load(); pm.PrintAll(); break; } #endregion } catch (Exception ex) { Console.WriteLine(ex.Message); } }