1Future Ответов: 1

Преобразование функции VB6 в C#


Всем Привет,

Мне нужно преобразовать функцию vb в c#, но я не специалист в VB, и дело в том, что я никогда раньше не кодировал в VB. Кто-нибудь знает какие-нибудь инструменты, которые позволили бы преобразовать функцию VB в c#? Я пробовал искать в интернете, но не могу найти ничего, что поддерживает VB6.

Если кому-то интересно, какую функцию мне нужно преобразовать в c#, то это выглядит примерно так:

Function Base64Decode(ByVal base64String)
  'rfc1521
  '1999 Antonin Foller, Motobit Software, http://Motobit.cz
  Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  Dim dataLength, sOut, groupBegin
  
  'remove white spaces, If any
  base64String = Replace(base64String, vbCrLf, "")
  base64String = Replace(base64String, vbTab, "")
  base64String = Replace(base64String, " ", "")
  
  'The source must consists from groups with Len of 4 chars
  dataLength = Len(base64String)
  If dataLength Mod 4 <> 0 Then
    Err.Raise 1, "Base64Decode", "Bad Base64 string."
    Exit Function
  End If

  
  ' Now decode each group:
  For groupBegin = 1 To dataLength Step 4
    Dim numDataBytes, CharCounter, thisChar, thisData, nGroup, pOut
    ' Each data group encodes up To 3 actual bytes.
    numDataBytes = 3
    nGroup = 0

    For CharCounter = 0 To 3
      ' Convert each character into 6 bits of data, And add it To
      ' an integer For temporary storage.  If a character is a '=', there
      ' is one fewer data byte.  (There can only be a maximum of 2 '=' In
      ' the whole string.)

      thisChar = Mid(base64String, groupBegin + CharCounter, 1)

      If thisChar = "=" Then
        numDataBytes = numDataBytes - 1
        thisData = 0
      Else
        thisData = InStr(1, Base64, thisChar, vbBinaryCompare) - 1
      End If
      If thisData = -1 Then
        Err.Raise 2, "Base64Decode", "Bad character In Base64 string."
        Exit Function
      End If

      nGroup = 64 * nGroup + thisData
    Next
    
    'Hex splits the long To 6 groups with 4 bits
    nGroup = Hex(nGroup)
    
    'Add leading zeros
    nGroup = String(6 - Len(nGroup), "0") & nGroup
    
    'Convert the 3 byte hex integer (6 chars) To 3 characters
    pOut = Chr(CByte("&H" & Mid(nGroup, 1, 2))) + _
      Chr(CByte("&H" & Mid(nGroup, 3, 2))) + _
      Chr(CByte("&H" & Mid(nGroup, 5, 2)))
    
    'add numDataBytes characters To out string
    sOut = sOut & Left(pOut, numDataBytes)
  Next

  Base64Decode = sOut
End Function


Я был бы очень признателен, если бы кто-то мог помочь мне направить меня в правильном направлении.

Что я уже пробовал:

Я искал в интернете и наткнулся на эти инструменты, которые некоторые из них были помощью, а другие-нет.

Гл. [^] < этот довольно хорош, к сожалению, в нем отсутствует функция, которую мне нужно преобразовать
Преобразователь Кодов[^] << я получаю очень много ошибок с этим.

Спасибо

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Вы можете просто пропустить преобразование всего этого кода использовать одну строку кода чтобы сделать то же самое:

Метод Convert.FromBase64String (String) (System)[^]


Maciej Los

5ed!