Rubrik: Variablen/Strings · String-Operationen | VB-Versionen: VB6 | 25.05.01 |
ASCII-Werte eines kompletten Strings ermitteln Zuweisung eines Strings an ein Array und dadurch die ASC-Funktion umgehen. | ||
Autor: Torsten Kerz | Bewertung: | Views: 20.802 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wer hat nicht schon einmal das Problem gehabt, daß man die ASCII-Werte eines kompletten Strings benötigt? Insbesondere, wer Prüfsummen berechnen will, steht schnell vor dieser Aufgabe.
VB bietet hierfür eine Möglichkeit, die nirgendswo direkt dokumentiert ist. Es ist problemlos möglich, einem BYTE-ARRAY einen String zuzuweisen. Wichtig ist zu beachten, daß beim Umwandeln auf diese Weise der Zweibyte-Wert kopiert wird. Hierfür kann man jedoch die StrConv-Funktion oder aber STEP 2 in einer For-Next-Schleife verwenden.
' Beispiel: Prüfsumme ' Verfahren: StrConv Public Function Prüfsumme(Daten As String) As Long Dim lCtr As Long Dim DatenASCII() As Byte DatenASCII = StrConv(Daten, vbFromUnicode) For lCtr = LBound(DatenASCII) To UBound(DatenASCII) Prüfsumme = (Prüfsumme + DatenASCII(lCtr)) And 255 Next lCtr End Function
ALTERNATIV DAZU (geringfügig schneller):
' Beispiel: Prüfsumme ' Verfahren: For..Next Step 2 Public Function Prüfsumme2(Daten As String) Dim lCtr As Long Dim DatenASCII() As Byte DatenASCII = Daten For lCtr = LBound(DatenASCII) To UBound(DatenASCII) Step 2 Prüfsumme2 = (Prüfsumme2 + DatenASCII(lCtr)) And 255 Next lCtr End Function