VBFixedString

20/02/2008 - 21:52 von Peter Haus | Report spam
Hallo VBler

Ich habe ein Projekt, das in VB6 erstellt wurde, nach VS Konvertiert.
Mit dem Programm wird eine Schnittstellen-Textdatei erstellt, mit einer
grossen Anzahl Stringblöcken fester Lànge.
In VB6 waren das alles einzelne Strings, mit fester Lànge die zusammengefügt
wurden.

Beim Konvertieren wurde mir sowas wie unten erstellt, mit VBFixedString
Attribut.
<VBFixedString(5),
System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.Unma
nagedType.ByValArray, SizeConst:=5)> Dim cText() As Char

Was mich jetzt wundert ist, ich kann jede beliebige Anzahl Zeichen in diese
Variable übertragen.

cText = "12345" cText.Length=5
cText = "12345678" cText.Length=8
cText = "12" cText.Length=2

Da könnte ich ja gleich "Dim cText as String" schreiben.

Kennt sich jemand aus, wie das mit den VBFixedString funktioniert?

Gruss Peter
 

Lesen sie die antworten

#1 Armin Zingler
20/02/2008 - 22:20 | Warnen spam
"Peter Haus" schrieb
Hallo VBler

Ich habe ein Projekt, das in VB6 erstellt wurde, nach VS
Konvertiert. Mit dem Programm wird eine Schnittstellen-Textdatei
erstellt, mit einer grossen Anzahl Stringblöcken fester Lànge.
In VB6 waren das alles einzelne Strings, mit fester Lànge die
zusammengefügt wurden.

Beim Konvertieren wurde mir sowas wie unten erstellt, mit
VBFixedString Attribut.
<VBFixedString(5),
System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.Unma
nagedType.ByValArray, SizeConst:=5)> Dim cText() As Char

Was mich jetzt wundert ist, ich kann jede beliebige Anzahl Zeichen
in diese Variable übertragen.

cText = "12345" cText.Length=5
cText = "12345678" cText.Length=8
cText = "12" cText.Length=2

Da könnte ich ja gleich "Dim cText as String" schreiben.

Kennt sich jemand aus, wie das mit den VBFixedString funktioniert?



Das Attribut VBFixedString wirkt sich ausschließlich auf die
VB-Dateioperationen (FileGet, FilePut) aus. Die Variablen haben keine
feste Lànge da es keine Strings fester Lànge mehr gibt. Beim Schreiben
in eine Datei mit FilePut kannst du also sicher sein, das tatsàchlich 5
Zeichen geschrieben werden auch wenn der String nur 3 Zeichen lang ist.


Armin

Ähnliche fragen