vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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 - Fortgeschrittene
Re: was ist der bessere weg? 
Autor: WaldiMaywood
Datum: 03.04.04 17:35

hhmmm, JaEin. Du kannst Access verwenden. Ist aber nicht gerade ein richtiges DBM-System, und ist nicht gerade die schnellste Möglichkeit. Aber in der Tat bestimmt etwas flotter als eine Textdatei mit ca. > 1000 Zeilen.
Oder ... du verwendest Serialize() an.

Hier ein Beispiel, welches sich in etwa an dein Konzept anlehnt:
Ein Files + File Klasse:
<Serializable()> Public Class Files
    Public Array As ArrayList
    Public Sub New()
        Array = New ArrayList
    End Sub
    Public Sub New(ByVal File As Files.File)
        Me.New()
        Me.Array.Add(File)
    End Sub
    Public Sub New(ByVal Files As ArrayList)
        Me.New()
        Me.Array = Files.Clone
    End Sub
    Public Sub New(ByVal Files As String())
        Me.New()
        For Each file As String In Files
            Me.Array.Add(New Files.File(file, New IO.FileInfo(file).Length))
        Next
    End Sub
    Public Function GetFileName(ByVal Index As Integer) As String
        Return CType(Me.Array(Index), file).FileName
    End Function
    Public Function GetFileSize(ByVal Index As Integer) As String
        Return CType(Me.Array(Index), file).FileName
    End Function
    Public Function GetFile(ByVal Index As Integer) As Files.File
        Return CType(Me.Array(Index), file)
    End Function
    <Serializable()> Public Class File
        Public FileName As String
        Public FileSize As Integer
        Public Sub New(ByVal FileName As String, ByVal FileSize As Integer)
            Me.FileName = FileName
            Me.FileSize = FileSize
        End Sub
        Public Overrides Function ToString() As String
            Return String.Format("Datei: {0} Größe: {1}", FileName, FileSize)
        End Function
    End Class
End Class
Klasse füllen + serialisieren (Serialize):
        Dim ser As New _
          System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
        Dim fs As IO.FileStream = IO.File.Open("files.dat", IO.FileMode.Create)
        Dim files As Files
        files = New Files(IO.Directory.GetFiles("C:\Windows"))
        ser.Serialize(fs, files)
        fs.Close()
Klasse füllen aus der serialisierten Datei (Deserialize):
        If IO.File.Exists(Application.StartupPath + "\files.dat") Then
            Dim ser As New _
              System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            Dim fs As IO.FileStream = IO.File.Open("files.dat", _
            IO.FileMode.Open)
            Dim files As Files = DirectCast(ser.Deserialize(fs), Files)
            For Each file As Files.File In files.Array
                Me.ListBox2.Items.Add(file.FileName)
            Next
            fs.Close()
        End If
Auf ein bestimmtes Element im Array kannst du so zugreifen:
            MessageBox.Show(files.GetFileName(0))
            MessageBox.Show(files.GetFileSize(0))
            MessageBox.Show(files.GetFile(0).ToString)
PS: Hab es einmal mit ca. 60000 Dateieinträgen (File) getestet und war sehr schnell!

Steve
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
was ist der bessere weg?733Neo2103.04.04 14:02
Re: was ist der bessere weg?482Johannes222103.04.04 14:13
Re: was ist der bessere weg?505Johannes222103.04.04 14:14
Re: was ist der bessere weg?496WaldiMaywood03.04.04 14:35
Re: was ist der bessere weg?502Neo2103.04.04 14:42
Re: was ist der bessere weg?514Johannes222103.04.04 15:16
Re: was ist der bessere weg?468Neo2103.04.04 15:28
Re: was ist der bessere weg?502Johannes222103.04.04 15:31
Re: was ist der bessere weg?482Johannes222103.04.04 15:34
Re: was ist der bessere weg?534WaldiMaywood03.04.04 17:35

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