1. VisualBasic / Говнокод #1941

    −116.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Public Function Str2Hex(ByVal strData As String)
    Dim i As Long, CryptString As String, tmpAppend As String
        On Local Error Resume Next
        For i = 1 To Len(strData)
            tmpAppend = Hex$(Asc(Mid$(strData, i, 1)))
            If Len(tmpAppend) = 1 Then tmpAppend = Trim$(Str$(0)) & tmpAppend
            CryptString = CryptString & tmpAppend: DoEvents
        Next i
        Str2Hex = CryptString
    End Function

    Работающий перевод строки в Hex.
    Но:
    1. On Error ... - Где тут может быть Error?!
    2. Вместо "0" почему-то написано Trim$(Str$(0)
    3. DoEvents, выполняющийся после каждого добавления к строке сильно замедлит код

    Запостил: KIRK, 05 Октября 2009

    Комментарии (4) RSS

    • та как-то кривовато вышло...
      см. мой говнокод, он правда на Шарпе, но реализован проще и работает
      быстрее.
      http://govnokod.ru/1964
      в твоём случае вместо " GetEncoding("windows-1251") " надо писать "Default" и вместо " AppendFormat("%{0}", bt.ToString("X02")) " - " Append(bt.ToString("X02")) ".
      Ответить
    • Гы
      Ответить
    • Ну DoEvents наверно на случай очень длинной StrData. DoEvents проще чем зааллокейтить необходимый буффер CryptString ;)
      Ответить
    • 1. On Error на случай пустой строки? Ребенок испугался, что с пустой строкой выполнится цикл и mid выйдет в осадок.. Других вариантов не догоняю.
      2. а Str$(0) = " 0" :)
      3. А шобэ это чудо визуально не вешало окно :)
      Веселый код че)
      Ответить

    Добавить комментарий