Update – VB.net – ascii zu ebcdic converter

Wie es g0pher schon in meinen Beitrag kommentiert hat, geht es natürlich etwas kürzer. Anstatt die ganzen ACSII und EBCDIC Werte einzeln den Array zu übergeben, lässt sich das ganze auch per Schleife realisieren.
Und so kann es dann aussehen:

Public Function func_ascii_to_ebcdic(sub_text as String)
''Variablen
Dim acsii as String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim ebcdic as String = "F0F1F2F3F4F5F6F7F8F9C1C2C3C4C5C6 _
C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E9"
Dim str_con As String
Dim pos as String
For x = 1 To Len(sub_text)
    pos = InStr(acsii, UCase( Mid(sub_text, x, 1)))
    str_con = str_con + "&H" + Mid(ebcdic, (pos - 1) * 2 + 1, 2)
Next
return str_con
End Function

Das praktische hierbei ist die InStr Funktion, damit spart man eine For Schleife. InStr liefert die Position des jeweiligen ACSII Zeichen, da die EBCDIC Werte aus 2 Zeichen bestehen, multipliziert man das ganze x 2 und erhält so über “&H” + Mid Wert den kompletten EBCDIC String.
Wie man an Hand der optimierten g0pher Funkion sehen kann, lässt sich vieles einfach und praktischer programmieren.