Hallo Zusammen,
cih bräuchte bitte Hilfe von euch.
Ich möchte ein VB6-Projekt nach .NET migrieren und stoße auf Probleme "komplexe Datenstrukturen" aus einer von vb6 erzeugten Datei zu laden...
Ich erhalte imme die Meldung das die Arraydimensionen nicht übereinstimmen und weiß nicht so recht wie ich das Problem beheben kann.
Besten Dank und Grüße
Pascal
Hier der Code:
[highlight=vbnet]
Public Structure svObjectFile
Dim GFXname As String
Dim FileType As String
Dim ObjectsAmount As Byte
Dim ObjectsName() As String
Dim ObjectsValue() As Object
Dim WeaponAmount As Byte
Dim EngineAmount As Byte
<VBFixedArray(10)> Dim WeaponMounts() As WeaponMount
<VBFixedArray(10)> Dim EngineMounts() As EngineMount
'Dim WeaponMounts() As WeaponMount
'Dim EngineMounts() As EngineMount
'UPGRADE_TODO: Zum Initialisieren der Instanzen dieser Struktur muss "Initialize" aufgerufen werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1026"'
Public Sub Initialize()
'UPGRADE_WARNING: Die untere Begrenzung des Arrays WeaponMounts wurde von 1 in 0 geändert. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"'
ReDim WeaponMounts(9)
'UPGRADE_WARNING: Die untere Begrenzung des Arrays EngineMounts wurde von 1 in 0 geändert. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"'
ReDim EngineMounts(9)
End Sub
End Structure
Dim ObjectFile As modTypeDef.svObjectFile
Dim FileWalker As Integer
Dim I As Integer
'On Error GoTo error_Renamed
ObjectFile.Initialize()
MessageBox.Show(File & vbCrLf & Len(ObjectFile) & vbCrLf)
Try
FileOpen(1, File, OpenMode.Random, OpenAccess.Read)
'UPGRADE_WARNING: Get wurde zu FileGet aktualisiert und hat ein neues Verhalten. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1041"'
FileGet(1, ObjectFile, 1)
'Dim GFXname As String
'Dim FileType As String
'Dim ObjectsAmount As Byte
'Dim ObjectsName() As String
'Dim ObjectsValue() As Object
'Dim WeaponAmount As Byte
'Dim EngineAmount As Byte
FileClose(1)
With ObjectFile
System.Diagnostics.Debug.WriteLine(VB6.TabLayout(. FileType, .GFXname, .ObjectsAmount))
For I = 1 To 10
System.Diagnostics.Debug.WriteLine(VB6.TabLayout(. EngineMounts(I).X, .WeaponMounts(I).X))
Next I
For I = 1 To .ObjectsAmount
System.Diagnostics.Debug.WriteLine(VB6.TabLayout(. ObjectsName(I), .ObjectsValue(I)))
Next I
End With
[/highlight]
cih bräuchte bitte Hilfe von euch.
Ich möchte ein VB6-Projekt nach .NET migrieren und stoße auf Probleme "komplexe Datenstrukturen" aus einer von vb6 erzeugten Datei zu laden...
Ich erhalte imme die Meldung das die Arraydimensionen nicht übereinstimmen und weiß nicht so recht wie ich das Problem beheben kann.
Besten Dank und Grüße
Pascal
Hier der Code:
[highlight=vbnet]
Public Structure svObjectFile
Dim GFXname As String
Dim FileType As String
Dim ObjectsAmount As Byte
Dim ObjectsName() As String
Dim ObjectsValue() As Object
Dim WeaponAmount As Byte
Dim EngineAmount As Byte
<VBFixedArray(10)> Dim WeaponMounts() As WeaponMount
<VBFixedArray(10)> Dim EngineMounts() As EngineMount
'Dim WeaponMounts() As WeaponMount
'Dim EngineMounts() As EngineMount
'UPGRADE_TODO: Zum Initialisieren der Instanzen dieser Struktur muss "Initialize" aufgerufen werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1026"'
Public Sub Initialize()
'UPGRADE_WARNING: Die untere Begrenzung des Arrays WeaponMounts wurde von 1 in 0 geändert. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"'
ReDim WeaponMounts(9)
'UPGRADE_WARNING: Die untere Begrenzung des Arrays EngineMounts wurde von 1 in 0 geändert. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"'
ReDim EngineMounts(9)
End Sub
End Structure
Dim ObjectFile As modTypeDef.svObjectFile
Dim FileWalker As Integer
Dim I As Integer
'On Error GoTo error_Renamed
ObjectFile.Initialize()
MessageBox.Show(File & vbCrLf & Len(ObjectFile) & vbCrLf)
Try
FileOpen(1, File, OpenMode.Random, OpenAccess.Read)
'UPGRADE_WARNING: Get wurde zu FileGet aktualisiert und hat ein neues Verhalten. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1041"'
FileGet(1, ObjectFile, 1)
'Dim GFXname As String
'Dim FileType As String
'Dim ObjectsAmount As Byte
'Dim ObjectsName() As String
'Dim ObjectsValue() As Object
'Dim WeaponAmount As Byte
'Dim EngineAmount As Byte
FileClose(1)
With ObjectFile
System.Diagnostics.Debug.WriteLine(VB6.TabLayout(. FileType, .GFXname, .ObjectsAmount))
For I = 1 To 10
System.Diagnostics.Debug.WriteLine(VB6.TabLayout(. EngineMounts(I).X, .WeaponMounts(I).X))
Next I
For I = 1 To .ObjectsAmount
System.Diagnostics.Debug.WriteLine(VB6.TabLayout(. ObjectsName(I), .ObjectsValue(I)))
Next I
End With
[/highlight]
Comment