vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Wer sowas tatsächlich braucht .... 
Autor: Manfred X
Datum: 21.05.12 18:26

Zunächst wird ein TeilnehmerEnumerator benötigt:
Public Class TeilnehmerEnumerator
    Implements IEnumerator(Of Teilnehmer)
 
    Dim _binaryreader As IO.BinaryReader = Nothing
    Public Sub New(ByVal binaryreader As IO.BinaryReader)
        _binaryreader = binaryreader
        _binaryreader.BaseStream.Position = 0
    End Sub
 
    Public Function MoveNext() As Boolean Implements IEnumerator.MoveNext
        Return _binaryreader.BaseStream.Position < _
          _binaryreader.BaseStream.Length
    End Function
    Public Sub Reset() Implements IEnumerator.Reset
        _binaryreader.BaseStream.Position = 0
    End Sub
 
    Public ReadOnly Property Current1 As Teilnehmer _
        Implements System.Collections.Generic.IEnumerator(Of Teilnehmer).Current
        Get
            Try
                'muss mit den Write-Anweisungen korrespondieren 
                Dim el As New Teilnehmer
                With el
                    .name = _binaryreader.ReadString
                    .matrnr = _binaryreader.ReadInt32
                    .Fachrichtung = _binaryreader.ReadString
                    Dim nl As String = _binaryreader.ReadString()
                End With
                Return el
            Catch ex As IndexOutOfRangeException
                Throw New InvalidOperationException()
            End Try
        End Get
    End Property
 
    Public ReadOnly Property Current As Object Implements _
      System.Collections.IEnumerator.Current
        Get
            Return Current1
        End Get
    End Property
    Private disposedValue As Boolean
    Protected Overridable Sub Dispose(ByVal disposing As Boolean)
        If Not Me.disposedValue Then
            If disposing Then
                _binaryreader.Close()
            End If
        End If
        Me.disposedValue = True
    End Sub
    Public Sub Dispose() Implements IDisposable.Dispose
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub
End Class
Und eine anwendende Klasse:
Public Class ReadAsEnumerable
    Implements IEnumerable(Of Teilnehmer)
 
    Dim _binaryreader As IO.BinaryReader
    Dim _filestream As IO.FileStream
 
    Public Sub New(ByVal filename As String)
        _filestream = New IO.FileStream(filename, IO.FileMode.Open, _
          IO.FileAccess.Read)
        _binaryreader = New IO.BinaryReader(_filestream)
    End Sub
 
    Public Function GetEnumerator1() As System.Collections.IEnumerator _
       Implements System.Collections.IEnumerable.GetEnumerator
        Return New TeilnehmerEnumerator(_binaryreader)
    End Function
 
    Public Function GetEnumerator() As System.Collections.Generic.IEnumerator( _
      Of Teilnehmer) _
      Implements System.Collections.Generic.IEnumerable(Of _
      Teilnehmer).GetEnumerator
        Return New TeilnehmerEnumerator(_binaryreader)
    End Function
End Class
Anwendung:
'DataFile = Pfad/Name der Datei
Dim ras As New ReadAsEnumerable(DataFile)
 
Dim x As IEnumerable(Of Object) = (From n As Teilnehmer In ras _
    Group By n.Fachrichtung Into Count()).tolist


Beitrag wurde zuletzt am 21.05.12 um 18:32:25 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Vb Frage LINQ mit Binaer Datein1.139mak199120.05.12 21:33
Re: Vb Frage LINQ mit Binaer Datein668ModeratorDaveS21.05.12 09:33
Re: Vb Frage LINQ mit Binaer Datein637mak199121.05.12 09:53
Re: Vb Frage LINQ mit Binaer Datein631ModeratorDaveS21.05.12 11:14
Re: Vb Frage LINQ mit Binaer Datein657Manfred X21.05.12 14:25
Wer sowas tatsächlich braucht ....663Manfred X21.05.12 18:26

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel