powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите перевести код с vb.net на vb
3 сообщений из 3, страница 1 из 1
Помогите перевести код с vb.net на vb
    #37707222
donpauls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Function decodePDU(ByVal strIn As String)
        Dim b As Byte = 0
        Dim d = 0
        Dim out = ""
        For n = 0 To strIn.Length - 1 Step 2
            Dim tbyte As Byte = Val("&h" & strIn.Substring(n, 2))
            Dim c = ((tbyte And ((1 << 7 - d) - 1)) << d) Or b
            b = tbyte >> (7 - d)
            out = out & Chr(c)
            d = d + 1
            If (d = 7) Then
                out = out & Chr(b)
                d = 0
                b = 0
            End If
        Next
        Return out
    End Function
 
    Function encodePDU(ByVal strIn As String)
        Dim out = ""
        strIn = strIn + vbNullChar
        For n = 0 To strIn.Length - 2
            Dim t = n Mod 8 + 1
            If t = 8 Then Continue For
            Dim c = Asc(strIn.Substring(n, 1)) >> (n Mod 8)
            Dim oc = c
            Dim b = Asc(strIn.Substring(n + 1, 1)) And ((1 << t) - 1)
            c = (b << (8 - t)) Or c
            out = out & (Hex(c)).PadLeft(2, "0").ToUpper
        Next
        Return out
    End Function
...
Рейтинг: 0 / 0
Помогите перевести код с vb.net на vb
    #37710860
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и задавал бы вопросы в проффоруме...

И не надо переть код откуда-то... (с)Нойз
...
Рейтинг: 0 / 0
Помогите перевести код с vb.net на vb
    #37711407
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
Public Function pdu2text(pdu As String, ByVal pduLen As Integer) As String
Dim i As Long, octet As Long, septet As Long, remainder As Long, divider As Long
Dim s As String

  remainder = 0
  For i = 0 To Len(pdu) \ 2 - 1
    s = "&H" & VBA.Mid$(pdu, i * 2 + 1, 2)
'    Debug.Print s
    octet = CByte(s)
    septet = (octet * 2 ^ (i Mod 7) + remainder) And 127
    divider = 2 ^ (7 - (i Mod 7))
    remainder = octet \ divider
    pdu2text = pdu2text & Chr(septet)
    If Len(pdu2text) = pduLen Then Exit For
    If (i Mod 7) = 6 Then
        pdu2text = pdu2text & Chr(remainder)
        remainder = 0
    End If
  Next i
  
  pdu2text = VBA.Replace(pdu2text, Chr(0), "")
  
End Function

Public Function txt2pdu(ByVal stxt As String) As String
Dim s As Long
Dim Y As Integer
Dim X As String
Dim Text As String
Dim out As String
Dim L As Long

    For Y = 1 To Len(stxt)
        X = Dec2Bin(Asc(Mid(stxt, Y, 1)), True)
        'If X = "100000" Then X = "0100000"
        Text = X & Text
    Next Y
    'Debug.Print Text
    L = VBA.Len(Text)
    s = L - 7
    If s = 0 Then s = 1
    out = Bin2Hex(Mid(Text, s, 8))
    Do Until s <= 8
        s = s - 8
        out = out & Bin2Hex(Mid(Text, s, 8))
    Loop
    out = out & Bin2Hex(Mid(Text, 1, s - 1))
    'Debug.Print out
    
    X = Hex(Len(stxt))
    If Len(X) = 1 Then
        X = "0" & X
    End If
    'Debug.Print X & out
    txt2pdu = X & out
    
End Function

Public Function Dec2Bin(ByVal nDec As Integer, Optional ByVal OldVersion As Boolean = False) As String
'This function is the same then Hex2Bin,
'     but it has been copied to speed up proce
'     ss
Dim i As Integer
Dim j As Integer
Dim sHex As String
Const HexChar As String = "0123456789ABCDEF"
    
    sHex = Hex(nDec) 'That the only part that is different

    For i = 1 To Len(sHex)
        nDec = InStr(1, HexChar, Mid(sHex, i, 1)) - 1
        For j = 3 To 0 Step -1
            Dec2Bin = Dec2Bin & nDec \ 2 ^ j
            nDec = nDec Mod 2 ^ j
        Next j
    Next i
    If OldVersion Then
        'Remove the first unused 0
        i = InStr(1, Dec2Bin, "1")
        If i <> 0 Then Dec2Bin = Mid(Dec2Bin, i)
        If Len(Dec2Bin) = 6 Then Dec2Bin = "0" & Dec2Bin
    Else
        Dec2Bin = Format(Dec2Bin, "00000000")
    End If
    
End Function

Public Function Bin2Hex(ByVal sBin As String) As String
Dim i As Integer
Dim nDec As Long
    
    sBin = String(4 - Len(sBin) Mod 4, "0") & sBin 'Add zero to complete Byte
    For i = 1 To Len(sBin)
        nDec = nDec + CInt(Mid(sBin, Len(sBin) - i + 1, 1)) * 2 ^ (i - 1)
    Next i
    Bin2Hex = Hex(nDec)
    If Len(Bin2Hex) Mod 2 = 1 Then Bin2Hex = "0" & Bin2Hex
    
End Function
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите перевести код с vb.net на vb
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]