vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 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

Visual-Basic Einsteiger
Speichern von Daten eines benutzerdefinierten Typs 
Autor: PanzerTanker
Datum: 29.03.11 16:42

Hallo zusammen!

Ich habe ein Problem und bisher leider keine Idee, was ich falsch mache.
Mit einem Programm möchte ich eine Mitgliederdatenbank führen. Dazu möchte ich zu Programmbegin die Mitgliederdaten aus einer externen Datei (Data.frb) laden und zu Programmende wieder abspeichern.
Dazu habe ich in einem anderen Forum Funktionen gefunden, welche die im Namespace Microsoft.VisualBasic befindlichen Funktionen Fileopen, Fileput, Fileget ... verwenden. Meine Mitgliederdaten möchte ich in einem benutzerdefinierten Typ zur Laufzeit speichern. Dieser ist sehr komplex und besteht auch in sich aus benutzerdefinierten Typen (meist in arrays):

Public Structure Bundesbruder_Dat
        Dim ID As Integer
        Dim Anrede As String
        Dim Name As String
        Dim GebName As String
        Dim Vorname As String
        Dim GebDat As Date
        Dim GebOrt As String
        Dim Lebenswerk() As String
        ...
    End Structure
Meine Speichervariable ist global:
Public Bundesbrüder() As Bundesbruder_Dat[/Code]
 
Hier der Speicheraufruf, der funktioniert:
 
' Funktion um das Bundesbrüder Array in Datei zu speichern
<pre><code>    Public Sub SaveBundesbrüder(ByVal vArray As Object)
 
        Dim F As Integer
        Dim nCount As Long
 
        ' Falls Datei vorhanden, zunächst löschen
        If Dir$(sFile) <> "" Then Kill(sFile)
 
        ' Datei im Binary-Mode öffnen
        F = FreeFile()
        FileOpen(F, sFile, OpenMode.Binary)
 
        ' Anzahl Elemente speichern
        nCount = UBound(vArray)
        FilePut(F, nCount)
 
        ' Array-Elemente speichern
        FilePutObject(F, vArray)
        FileClose(F)
    End Sub
Hier der Code zum Laden der Daten(wird mit einem Menüpunkt ausgelöst), der mein Problem erzeugt (Programmzeile habe ich mit * markiert:

Public Sub ReadBundesbrüder()
        Dim F As Integer
        Dim nCount As Long
 
        ' Datei im BinaryMode öffnen
        If Len(Dir$(sFile)) > 0 Then
            F = FreeFile()
            FileOpen(F, sFile, OpenMode.Binary)
 
            ' Anzahl Elemente lesen
            FileGet(F, nCount)
 
            ' Array dimensionieren und einlesen
            ReDim Bundesbrüder(nCount)
            FileGetObject(F, Bundesbrüder)*
            FileClose(F)
        End If
    End Sub
Und hier der Funktionsaufruf:

Private Sub DatensatzLadenToolStripMenuItem_Click(ByVal sender As _
  System.Object, ByVal e As System.EventArgs) Handles _
  DatensatzLadenToolStripMenuItem.Click
        ReDim Bundesbrüder(0)
        Call Funktionen.ReadBundesbrüder()
    End Sub
Und zwar erhalte ich zur Laufzeit folgenden Fehler:

"Die Variable verwendet einen Automatisierungstyp, der von Visual Basic nicht unterstützt wird."

Liegt es daran, daß evtl. mein Typ zu komplex ist? Der Code, den ich gefunden habe, verwendet eine einfache Array. Aber eigentlich sollte das ja kein Problem sein. Ich habe auch versucht die Array, die ich speichern will zuerst in einer Variable vom Typ object zwischenzuspeichern und beim Laden in eine Variable vom Typ object zu laden. Funktioniert aber leider auch nicht (gleiche Fehlermeldung!)
Wie könnte ich das Abspeichern denn sonst alternativ realisieren? Ich bin "Programmieramateur" und habe mir VB selbst gelernt (Habe nur ADA gelernt). Vielen Dank im Voraus!!!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Speichern von Daten eines benutzerdefinierten Typs1.445PanzerTanker29.03.11 16:42
Re: Speichern von Daten eines benutzerdefinierten Typs884Manfred X29.03.11 17:41
Re: Speichern von Daten eines benutzerdefinierten Typs851PanzerTanker30.03.11 00:06

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