Hallo zusammen,
auch ich bin ein "Neueinsteiter" und habe die Aufgabe, ein XML ein - bzw. Auslesen einer Xml Datei (XmlKurs) mit folgenden Code soweit gelöst, leider hänge ich an der Ausgabe von Summe und Durchschnitt fest und komme nicht weiter. Kann mir hier bitte jemand helfen ?
Option Strict On
Imports System.Xml.Serialization
Imports System.Collections.Generic
Public Class xmlKurs
Structure Teilnehmer
Public tnrNummer As String
Public Person As String
Public Punkte As String
End Structure
<Serializable()> Public Class TListe
<XmlElement(Type:=GetType(xmlKurs), _
ElementName:="Psoition")> _
Public rn As New ArrayList
End Class
<Serializable()> Public Class Position
Public Tnr As String
Public Teilnehmer As String
Public Punkte As Integer
Public Position As Integer
Sub New()
End Sub
Sub New(ByVal tnr As String, ByVal Teilnehmer As String, ByVal Punkte _
As Integer)
Me.Tnr = tnr
Me.Teilnehmer = Teilnehmer
Me.Punkte = Punkte
Me.Position = Position
End Sub
<Serializable()> Public Class Positionen
<XmlElement(Type:=GetType(Position), _
ElementName:="Position")> _
Public psn As New ArrayList
Public ReadOnly Property Anzahl() As Decimal
Get
Dim summiert As Decimal
For Each p As Position In psn
summiert += p.Punkte
Next
Return summiert
End Get
End Property
End Class
End Class
Public Tnliste As String = "C:\Documents and" & _
"Settings\pfliero1\Desktop\VBDN\Dokumente\xmlTListe.xml"
Shared Personen As New System.Collections.Generic.List(Of Teilnehmer)
Public Shared Sub Main()
Dim xt As New xmlKurs
Dim p As New Teilnehmer
p.tnrNummer = "1001"
p.Person = "Maximilian"
p.Punkte = "90"
Personen.Add(p)
p.tnrNummer = "1002"
p.Person = "Nora"
p.Punkte = "99"
Personen.Add(p)
p.tnrNummer = "1003"
p.Person = "Oscar"
p.Punkte = "80"
Personen.Add(p)
xt.xmlSpeichern(Personen)
Dim Personen2 As List(Of Teilnehmer)
Personen2 = xt.xmlLesen
Console.WriteLine("{0,15}{1,8}{2,15}", "Tnr", "Name", "Punkte")
With Personen2
For i As Integer = 0 To Personen2.Count - 1
With .Item(i)
Console.WriteLine("{0,16}{1,13}{2,5}", .tnrNummer, .Person, _
.Punkte)
End With
Next i
End With
Console.WriteLine("{0,16}", p.Punkte)
Console.ReadLine()
End Sub
Private Sub xmlSpeichern(ByVal personen As List(Of Teilnehmer))
Dim meineSerialisierer As New XmlSerializer(GetType(List(Of _
Teilnehmer)))
Dim sw As New IO.StreamWriter(Tnliste)
meineSerialisierer.Serialize(sw, personen)
sw.Close()
End Sub
Private Function xmlLesen() As List(Of Teilnehmer)
Dim meineSerialisierer As New XmlSerializer(GetType(List(Of _
Teilnehmer)))
Dim sr As New IO.StreamReader(Tnliste)
Dim personen As List(Of Teilnehmer)
personen = CType(meineSerialisierer.Deserialize(sr), List(Of _
Teilnehmer))
sr.Close()
Return personen
End Function
End Class wie gesagt, ich möchte gerne die Summe der Punkte und daraus den Durchscnitt berechnen.
Vielen Dank an alle, die mir helfen können. |