Hallo und Frohe Ostern
Ich habe hier eine App im Aufbau. Der u.g Code funktioniert soweit.
Für jeden Tag einer Kalenderwoche wird eine XML-Datei in einen bestimmten Verzeichnis geschrieben.
Nun wollte ich das alles in einem DGView abzeigen lassen, was mir dann bewust machte, das ich den Code irgendwie ändern muss.
Wie komme ich schnell dahin, das für jede KW die täglichen Daten nur in die vorhandene XML an gehangen werden?
Erst wenn eine neue KW beginnt soll auch eine neue XML geschrieben werden.
Spoiler anzeigen
*Titel angepasst*
Ich habe hier eine App im Aufbau. Der u.g Code funktioniert soweit.
Für jeden Tag einer Kalenderwoche wird eine XML-Datei in einen bestimmten Verzeichnis geschrieben.
Nun wollte ich das alles in einem DGView abzeigen lassen, was mir dann bewust machte, das ich den Code irgendwie ändern muss.
Wie komme ich schnell dahin, das für jede KW die täglichen Daten nur in die vorhandene XML an gehangen werden?
Erst wenn eine neue KW beginnt soll auch eine neue XML geschrieben werden.
VB.NET-Quellcode
- Private Sub btnSpeichern_Click(sender As Object, e As EventArgs) Handles btnSpeichern.Click
- If CheckControls(Me) Then
- ' Datum aus dem DateTimePicker auslesen
- Dim selectedDate As Date = dtpDatum.Value
- ' Speicherort aus den Einstellungen auslesen
- Dim settingsFilePath As String = Path.Combine(Application.StartupPath, "settings.xml")
- Dim xmlSettings As XDocument = XDocument.Load(settingsFilePath)
- Dim Datenverzeichnis As String = xmlSettings.<Settings>.<DataLocation>.Value
- ' Ordnerpfad generieren
- Dim monat = selectedDate.ToString("MMMM")
- Dim jahr = selectedDate.Year.ToString()
- Dim monatsOrdner = IO.Path.Combine(Datenverzeichnis, jahr, monat)
- If Not IO.Directory.Exists(monatsOrdner) Then
- IO.Directory.CreateDirectory(monatsOrdner)
- End If
- ' Kalenderwochen-Ordner anlegen
- Dim calendar As Calendar = CultureInfo.InvariantCulture.Calendar
- Dim kalenderwoche As Integer = calendar.GetWeekOfYear(selectedDate, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)
- Dim kalenderwocheOrdner = "KW- " & kalenderwoche.ToString("D2")
- Dim kwOrdnerPfad = IO.Path.Combine(monatsOrdner, kalenderwocheOrdner)
- If Not IO.Directory.Exists(kwOrdnerPfad) Then
- IO.Directory.CreateDirectory(kwOrdnerPfad)
- End If
- 'Erstellen einer neuen Instanz von WetterWoche
- Dim neueWoche As New WetterWoche
- 'Erstellung eines neuen Wettertags und Zuweisung der eingegebenen Werte
- Dim neuerTag As New WetterTag
- neuerTag.Datum = dtpDatum.Value
- neuerTag.NiederschlagRegenTag = CDbl(txtNiederschlagRegenTag.Text)
- neuerTag.NiederschlagRegenNacht = CDbl(txtNiederschlagRegenNacht.Text)
- neuerTag.NiederschlagSchneeTag = CDbl(txtNiederschlagSchneeTag.Text)
- neuerTag.NiederschlagSchneeNacht = CDbl(txtNiederschlagSchneeNacht.Text)
- neuerTag.LuftfeuchtigkeitMinTag = CInt(txtLuftfeuchtigkeitMinMaxTag.Text.Split(CChar("/"))(0))
- neuerTag.LuftfeuchtigkeitMaxTag = CInt(txtLuftfeuchtigkeitMinMaxTag.Text.Split(CChar("/"))(1))
- neuerTag.LuftfeuchtigkeitMinNacht = CInt(txtLuftfeuchtigkeitMinMaxNacht.Text.Split(CChar("/"))(0))
- neuerTag.LuftfeuchtigkeitMaxNacht = CInt(txtLuftfeuchtigkeitMinMaxNacht.Text.Split(CChar("/"))(1))
- neuerTag.TemperaturTag = CDbl(txtTemperaturTag.Text)
- neuerTag.TemperaturNacht = CDbl(txtTemperaturNacht.Text)
- neuerTag.WindstaerkeTag = CDbl(txtWindstaerkeTag.Text)
- neuerTag.WindstaerkeNacht = CDbl(txtWindstaerkeNacht.Text)
- neuerTag.WettergeschehnTag = txtWettergeschehnTag.Text
- neuerTag.WettergeschehnNacht = txtWettergeschehnNacht.Text
- neuerTag.Luftdruck = CDbl(txtLuftdruck.Text)
- neuerTag.Windrichtung = txtWindrichtung.Text
- ' Hinzufügen des neuen Wettertags zur Liste
- wetterdaten.Add(neuerTag)
- ' Speichern der Wetterdaten in der XML-Datei
- Dim stadt As String = xmlSettings.<Settings>.<Location>.Value
- Dim dateiname As String = String.Format("{0}_{1}.xml", stadt, dtpDatum.Value.ToString("ddMMyyyy"))
- Dim filePath As String = Path.Combine(Datenverzeichnis, kwOrdnerPfad, dateiname)
- Dim wochXml As New XElement("Wetterwoche", New XAttribute("StadtName", stadt))
- ' Hinzufügen der Wetterdaten
- For Each Tag As WetterTag In wetterdaten
- Dim tagXml As New XElement("Wettertag",
- New XAttribute("Datum", Tag.Datum.ToString("yyyy-MM-dd")),
- New XElement("NiederschlagRegenTag", Tag.NiederschlagRegenTag),
- New XElement("NiederschlagRegenNacht", Tag.NiederschlagRegenNacht),
- New XElement("NiederschlagSchneeTag", Tag.NiederschlagSchneeTag),
- New XElement("NiederschlagSchneeNacht", Tag.NiederschlagSchneeNacht),
- New XElement("LuftfeuchtigkeitMinMaxTag", Tag.LuftfeuchtigkeitMinTag & "/" & Tag.LuftfeuchtigkeitMaxTag),
- New XElement("LuftfeuchtigkeitMinMaxNacht", Tag.LuftfeuchtigkeitMinNacht & "/" & Tag.LuftfeuchtigkeitMaxNacht),
- New XElement("TemperaturTag", Tag.TemperaturTag),
- New XElement("TemperaturNacht", Tag.TemperaturNacht),
- New XElement("WindstaerkeTag", Tag.WindstaerkeTag),
- New XElement("WindstaerkeNacht", Tag.WindstaerkeNacht),
- New XElement("WettergeschehnTag", Tag.WettergeschehnTag),
- New XElement("WettergeschehnNacht", Tag.WettergeschehnNacht),
- New XElement("Luftdruck", Tag.Luftdruck),
- New XElement("Windrichtung", Tag.Windrichtung))
- wochXml.Add(tagXml)
- Next
- ' Speichern der Wetterdaten
- wochXml.Save(filePath)
- MessageBox.Show("Die Wetterdaten wurden unter " & Environment.NewLine & filePath & Environment.NewLine & " erfolgreich gespeichert.", "Speichern erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information)
- End If
- End Sub
*Titel angepasst*
Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()