Strukturen in Dateien speichern/laden

hbrauchl

Mitglied
Hallo zusammen!

Habe folgendes Problem:
Ich möchte gerne eine komplette Struktur (struct in C, in VB heißt es " benutzerdefinierter
Datentyp") in eine Datei abspeichern.

'#Meine Struktur (record)#
Code:
Type Polygon_descriptor

    Xoff As Long        
    Yoff As Long
    Xfact As Single      
    Yfact As Single
    Ptype As Integer       
    DataX() As Single       
    DataY() As Single      
    
End Type

Das speichern bekomme ich hin (falls das so richtig ist):

Code:
' #Speichern#
Private Sub Struktur_speichern()
Dim Dateipfad As String
Dim Dateiname As String
Dim Datei As String

Dim ff As Integer
ff = FreeFile

Dateipfad = "C:\"
Dateiname = "Struktur.txt"
Datei = Dateipfad & Dateiname

Open Datei For Binary Access Write As ff
  Put ff, 1, Poly(1)
Close ff

End Sub

Hier ist die Laderoutine-Proz:

Code:
Private Sub Struktur_laden()
' Struktur laden
  
Dim Dateipfad As String
Dim Dateiname As String
Dim Datei As String
Dim PolyHilf() As Polygon_descriptor

Dim ff As Integer

ff = FreeFile


Dateipfad = "C:\"
Dateiname = "Struktur.txt"
Datei = Dateipfad & Dateiname

Open Datei For Input As ff

  ReDim Preserve PolyHilf(1)
  PolyHilf(1) = Input(LOF(ff), ff)

Close ff
  
End Sub

Jedoch bekomme ich hier (beim Laden) folgenden Fehler :
"Nur öffentliche, benutzerdefinierte Typen, die in öffentlichen Objektmodulen definiert sind, können als Parameter oder Rückgabetypen für öffentliche Prozeduren von Klassenmodulen oder als Felder öffentlicher, benutzerdefinierter Typen verwendet werden"

Nun zu meiner Frage: Wie bekomme ich meine "Struktur" von der Datei
in meine neue "Struktur-Variable"?


Vielen Dank im voraus für eure Hilfe!


Liebe Grüße,
Hans
 
Hallo zusammen!

Falls mir irgendjemand bei diesem blöden Problem helfen kann - wäre ich
sehr, sehr dankbar.

Hoffe es gibt hier jemanden.


Liebe Grüße,
Hans
 
Nach längerem Herumprobieren hat sich folgender Code als funktionswillig herausgestellt:
Code:
Private Sub Struktur_Laden()
Dim intDateinummer As Integer
intDateinummer = FreeFile
 
Dim Poly As Polygon_descriptor
 
Open  "C:\Test.txt" For Binary Access Read As intDateinummer
	 Get #intDateinummer, , Poly
Close intDateinummer
 
End Sub
Allerdings habe ich nicht ausprobiert ob es geht, mehrere Variablen in der selben Datei zu speichern.
 
Hi!

Vielen Dank für Deine Antwort!
Sorry, daß ich mich erst jetzt rühre.

Wenn ich nun auf Daten des "Poly" zugreifen will, z.B:

Code:
MsgBox HPoly.DataX

Dann bekomme ich die Meldung
"Typen unverträglich "

Ist mir aber ein Rätsel, da der Input wie der Output Typ gleich sind.

Kannst Du mir Deinen kompletten Testcode schicken?
Vielleicht übersehe ich da was.


Vielen, vielen Dank im voraus.

Liebe Grüße,
Hans
 
Ist DataX() As Single nicht ein Array?
Dann musst du doch ne Stelle angeben, um etwas auszugeben.
 
Hi!

Sorry
Bin schon selbst draufgekommen :)

Habe mich vertippt, sollte heißen:
z.B.:
Code:
MsgBox HPoly.DataX(1)

Danke für Deine Hilfe!!

Problem gelöst.

LG,
Hans
 
Zurück