//Methode zum Laden einer 'Fahrzeug'-Datei (vgl. auch SpeichernUndLaden.Form1.LadeText()) private void LadeFZ() { StreamReader reader = null; try { reader = new StreamReader("fahrzeuge.txt"); //Mittels der TypeNameHandling-Property des JsonSerializerSettings-Objekts kann dem Serialisierer aufgegeben werden, dass er den expliziten Objekt-Type der //zu ladenden/speichernden Objekte mit abspeichert JsonSerializerSettings settings = new JsonSerializerSettings(); settings.TypeNameHandling = TypeNameHandling.Objects; while (!reader.EndOfStream) { //Lesen einer Textzeile aus der Datei string fzString = reader.ReadLine(); //Umwandlung der Textzeile in ein Fahrzeug (Beachte die Übergabe des Settings-Objekts) Fahrzeug fz = JsonConvert.DeserializeObject <Fahrzeug>(fzString, settings); //Hinzufügen des Fahrzeugs zur Liste FzListe.Add(fz); } MessageBox.Show("Laden erfolgreich"); } catch (Exception) { MessageBox.Show("Laden fehlgeschlagen"); } finally { reader?.Close(); } }
//Methode zum Löschen von Fahrzeugen private void LöscheFz() { for (int i = LbxFahrzeuge.Items.Count - 1; i >= 0; i--) { if (LbxFahrzeuge.GetSelected(i)) { FzListe.RemoveAt(i); } } }
//Methode zum Löschen von Fahrzeugen private void LöscheFZ() { for (int i = lbxFahrzeuge.Items.Count - 1; i >= 0; i--) { if (lbxFahrzeuge.GetSelected(i)) { FzListe.Remove(FzListe[i]); } } }
//Methode zur zufälligen Erstellung von Fahrzeugen private void ErstelleNeuesFZ() { switch (Generator.Next(1, 4)) { case 1: FzListe.Add(new Flugzeug($"Boing", 800, 3600000, 9999)); break; case 2: FzListe.Add(new Schiff($"Titanic", 40, 3500000, Schiff.Schiffstreibstoff.Dampf)); break; case 3: FzListe.Add(PKW.ErzeugeZufälligenPKW()); break; } }
//Methode zum Laden einer 'Fahrzeug'-Datei (vgl. auch SpeichernUndLaden.StringLaden() bzw Fahrzeugpark.Fahrzeug.LadeFz()) private void LadeFz() { //Instanzierung eines Open-Dialogfensters OpenFileDialog openDialog = new OpenFileDialog(); //Einstellung diverser Parameter des Dialogfensters ///Standart-Dateiname openDialog.FileName = "textdatei.txt"; ///Standart-Ordner (kann z.B. ein Pfad als String sein oder (wie hier) ein Windows-'SpecialFolder') openDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); ///Übergabe des Windows-Arbeitsplatzes als GUID openDialog.InitialDirectory = "::{20d04fe0-3aea-1069-a2d8-08002b30309d}"; ///Mögliche Dateiformate openDialog.Filter = "Textdatei|*.txt|Stringdatei|*.string|Alle Dateien|*.*"; //Öffnen des Dialogfensters und Überprüfung der Benutzerwahl if (openDialog.ShowDialog() == DialogResult.OK) { //Öffen der LadeFz()-Methode mit Übergabe des gewählten Pfades List <Fahrzeug> tempFzList = Fahrzeug.LadeFz(openDialog.FileName); //Zusammenlegen zweier Listen FzListe.AddRange(tempFzList); } }