Перевод строки в формат PDU - VB
Формулировка задачи:
Добрый день, уважаемое сообщество. Есть программа, которая отсылает смс сообщения через модем, который подключен к комм порту.
Открыть порт и отослать AT-команды мне удалось, но возникли проблемы с кодированием сообщения в формат PDU. Текст для сообщения берется из текст бокса. Подскажите, как лучше сформировать сообщение.
Открыть порт и отослать AT-команды мне удалось, но возникли проблемы с кодированием сообщения в формат PDU. Текст для сообщения берется из текст бокса. Подскажите, как лучше сформировать сообщение.
Решение задачи: «Перевод строки в формат PDU»
textual
Листинг программы
Public Function txt2pdu(ByVal stxt As String) As String For Y = 1 To Len(stxt) X = Dec2Bin(Asc(Mid(stxt, Y, 1))) 'If X = "100000" Then X = "0100000" Text = X & Text Next Y 'Debug.Print Text l = Len(Text) s = l - 7 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) 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 '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 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д