Benutzer mit den meisten Antworten
MidB Code von VB6 nach .Net konvertieren

Frage
-
dim s as string
s="der test und ein bisschen mehr 0102"Dim c(49) As Byte
For i = 1 To Len(s) * 2
c(i) = AscB(MidB(s, i))
Next iHi zusammen, wie bekomme ich folgenden Code nach VB.Net konvertiert. MidB klappt ja nicht mehr .
Ich habe es schon mit
Fori = 1 ToLen(s) - 1 * 2b = ae.GetBytes(s.Substring(i, 1))
c(i) = b(0)
Nexti
Aber wenn ich jetzt C vergleiche mit dem VB6 Code habe ich da ein anderes Ergebnis.
Antworten
-
Hallo Thomas
Deinen VB6 code verstehe ich nicht ganz. Das Umwandeln eines strings n ein byte array unter Zugrundelegung einer bestimmten Encoding Klasse geht in NET so:
Dim b() as byte = System.Text.Encoding.DEFAULT.GetBytes(s)
DEFAULT wäre dann der Windows basierende Zeichensatz. Alternativ geht auch Ascii oder UTF8
Gruss Ellen
Nachtrag: Hier die Info zu weiteren Encoding Eigenschaften
Ich benutze/ I'm using VB2008 & VB2010
- Bearbeitet Ellen Ramcke Dienstag, 26. Juni 2012 11:05 link
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. Juli 2012 09:00
-
Hi zusammen.
Ich bin nicht sicher, ob das bereits berücksichtigt wurde, aber es sind 2 Dinge zu beachten:
a) Visual Basic Strings sind in .Net intern offenbar alle Unicode (und damit das Byte-Array ggf. anders). Probier auch mal Ellens Beispiel mit dem Encoding.ASCII aus, wenn deine Werte noch nicht stimmen.
b) Das von dir verwendete Substring ist im Gegensatz zu Mid NULLBASIERT, also um 1 Position verschoben. Deine For-Schleife fängt bei Index I = 1 an. Das könnte auch eine Fehlerursache bzw. der Grund für die unterschiedlichen Werte sein.
Hth, Dennis.
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. Juli 2012 08:59
Alle Antworten
-
Hallo Thomas
Deinen VB6 code verstehe ich nicht ganz. Das Umwandeln eines strings n ein byte array unter Zugrundelegung einer bestimmten Encoding Klasse geht in NET so:
Dim b() as byte = System.Text.Encoding.DEFAULT.GetBytes(s)
DEFAULT wäre dann der Windows basierende Zeichensatz. Alternativ geht auch Ascii oder UTF8
Gruss Ellen
Nachtrag: Hier die Info zu weiteren Encoding Eigenschaften
Ich benutze/ I'm using VB2008 & VB2010
- Bearbeitet Ellen Ramcke Dienstag, 26. Juni 2012 11:05 link
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. Juli 2012 09:00
-
Hi zusammen.
Ich bin nicht sicher, ob das bereits berücksichtigt wurde, aber es sind 2 Dinge zu beachten:
a) Visual Basic Strings sind in .Net intern offenbar alle Unicode (und damit das Byte-Array ggf. anders). Probier auch mal Ellens Beispiel mit dem Encoding.ASCII aus, wenn deine Werte noch nicht stimmen.
b) Das von dir verwendete Substring ist im Gegensatz zu Mid NULLBASIERT, also um 1 Position verschoben. Deine For-Schleife fängt bei Index I = 1 an. Das könnte auch eine Fehlerursache bzw. der Grund für die unterschiedlichen Werte sein.
Hth, Dennis.
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. Juli 2012 08:59
-
Hallo Thomas Klinger2,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.