Hallo liebe Gemeinde,
ich bin mit Visual Studio 2019 und VB unterwegs. Es gibt ein altes Programm welches noch unter VB6 lief was ich jetzt gerne in .net weiter laufen lassen würde.
Ich komme eigentlich gut zu recht, aber verzweifle an einer Routine, da diese ungewöhnlich viel Zeit benötigt und hoffe das mir einer helfen kann.
Das Programm ließt eine Binär-Datei ein und wertet dann die entsprechenden Daten aus.
Folgendes kommt aus VB6 und benötigt so lange:
Um es zu verdeutlichen:
Ich übergebe entweder an die o.g. Function den String "%°" oder besser gesagt
HiByte=37
LoByte=176
Das Ergebnis stimmt mit: 9648
Ich habe es im Binaryreader so gelöst aber auch das benötigt viel Rechenzeit:
Ein einfachen Reader.ReadInt16 bringt leider auch nicht das gewünschte Ergebnis.
Kann mir hier vielleicht jemand helfen?
Viele Grüße
pino
*Verschoben aus Tipps und Tricks Bereich* ~NoFear23m
ich bin mit Visual Studio 2019 und VB unterwegs. Es gibt ein altes Programm welches noch unter VB6 lief was ich jetzt gerne in .net weiter laufen lassen würde.
Ich komme eigentlich gut zu recht, aber verzweifle an einer Routine, da diese ungewöhnlich viel Zeit benötigt und hoffe das mir einer helfen kann.
Das Programm ließt eine Binär-Datei ein und wertet dann die entsprechenden Daten aus.
Folgendes kommt aus VB6 und benötigt so lange:
VB.NET-Quellcode
- Public Function Short2Integer(str As String, unsigned As Boolean) As Long
- Dim HiByte, LoByte As Byte
- HiByte = Asc(str.Substring(0, 1))
- LoByte = Asc(str.Substring(str.Length - 1))
- If HiByte And &H80 Then
- Short2Integer = (HiByte And &H7F) * &H100& Or LoByte Or &H8000
- Else
- Short2Integer = (HiByte * &H100&) Or LoByte
- End If
- Short2Integer = IIf(unsigned = True And Short2Integer < 0, Short2Integer + 65536, Short2Integer)
- End Function
Um es zu verdeutlichen:
Ich übergebe entweder an die o.g. Function den String "%°" oder besser gesagt
HiByte=37
LoByte=176
Das Ergebnis stimmt mit: 9648
Ich habe es im Binaryreader so gelöst aber auch das benötigt viel Rechenzeit:
Ein einfachen Reader.ReadInt16 bringt leider auch nicht das gewünschte Ergebnis.
Kann mir hier vielleicht jemand helfen?
Viele Grüße
pino
*Verschoben aus Tipps und Tricks Bereich* ~NoFear23m
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()