Anzeige
Archiv - Navigation
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Konvertierung VBA - VB.NET, Type und Random-Datei

Konvertierung VBA - VB.NET, Type und Random-Datei
17.10.2007 15:43:07
Andreas
Hallo allerseits,
ich möchte mit Excel ein Makro erstellen, das eine relative Datei auf die Platte schreibt, welches ich mit VB.NET einlenen können muß.
Leider gibt es Kompatiblitätsprobleme:
Type Datentyp
inhalt As String * 50
zahlen(50) As Long
auswahl As Boolean
tag As Date
End Type

Sub schreiben()
Dim variable As Datentyp
Open "E:\Test-vba.dat" For Random As #1 Len = Len(variable)
For i = 1 To 2000
Put #1, i, variable
Next i
Close #1
End Sub



und
Structure Datentyp
VBFixedString(50) Dim Inhalt As String
VBFixedArray(50) Dim Zahlen As Integer
Dim Auswahl As Boolean
Dim Tag As Date
End Structure
Module Module2


Sub schreiben()
Dim variable As Datentyp
Dim i As Short
FileOpen(1, "E:\Test-net.dat", OpenMode.Random, , , Len(variable))
For i = 1 To 2000
FilePut(1, variable, i)
Next i
FileClose(1)
End Sub


End Module
führt leider zu unterschiedlich großen Datensätzen.
Die von Excel erzeugte Datei hat eine Größe von 528000 Bytes, während die VB.NET-Routine nur 128000 Bytes Daten erzeugt. In meinem eigentlichen Projekt ist es allerdings umgekehrt, die von VB.NET erzeugte Datei ist größer. Daher weiß ich auch gar nicht, wo ich eigentlich anfangen soll zu suchen.
Kann mir jemand wenigstens einen ungefähren Tip geben, wo ich mit der Suche nach dem Fehler beginnen soll? :-)
Danke,
Andreas
PS: Die eckigen Klammern bei den "Fixed" mußte ich hier weglassen. Und Long in VBA und Integer in VB.NET haben laut Handbuch jeweils 4 Bytes Länge, daran soll/darf es nicht liegen...

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konvertierung VBA - VB.NET, Type und Random-Datei
17.10.2007 16:22:00
Tom
nur ein tip...vielleicht ein ansatz
vorsicht mit integer. der hat nicht immer 4bytes. zumidest in VB6 verschiebt sich der bei mir manchmal um ein bit. ich hab alle integers wenn möglcih durch andere einheiten ersetzt.
gruß tom

AW: Konvertierung VBA - VB.NET, Type und Random-Da
17.10.2007 16:40:00
Harry
Hallo Andreas,
dass mit VB.NET-Integer = VBA-Long = 4 Byte sollte stimmen
Bei der Dimension des Unterschieds zwischen den beiden Dateien vermute ich, dass Excel.VBA korrekt eine leeres Array der Dimension 0..50*4Bytes schreibt und VB.Net eben nicht.
Verwende doch mal für String und Array nur 5, und auch nur eine Schleife bis 10, belege die Variablen mit eindeutigen Werten und vergleiche dann die Ausgabedateien.
Bzgl. deiner Orignialdatei vermute ich, dass alle Datenfelder belegt sind und beim Schreiben unterschiedliche (Anzahl?) Trennzeichen zwischen den Daten bzw. Datensätzen verwendet werden.
Gruß
Harry

Anzeige
AW: Konvertierung VBA - VB.NET, Type und Random-Da
20.10.2007 13:06:00
Andreas
Hmmm...
so richtig komme ich da nicht weiter...
Danke trotzdem...
Gruß,
Andreas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige