Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SMS Декодирую PDU формат / 13 сообщений из 13, страница 1 из 1
10.01.2011, 15:49
    #37051138
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Всем привет. Сегодня хочу поделиться кодом декодирования уже имеющего кода смс в формате PDU. Следовал инструкциям, но сначало было немножко сложновато. Немножко упростил код.


Код: plaintext
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.
Public Function RozshifrovkaSMS(Kod As String) As String
Dim s As String
s = Kod
Debug.Print "КОД!"
Debug.Print s
s = "079183602720000004038177F700001110013090318039B55AAD56ABD56AB55AAD56ABD56AB55AAD56ABD5142A954A212CEBD9E9311A844ED3D37650BB3E4F8F5D64753D3D2EBBEA61"
s = Mid(s,  47 )

Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
  s = DekoduvannaFF16ToBin2(s)
  s = DecoderSMS(s)
  s = DekoduvannaBin2ToAsci(s)
  Debug.Print s
End Function
Public Function DekoduvannaFF16ToBin2(Txt As String) As String
Dim b As String
Dim c As Long
Dim r As Long
Dim BN As String
  For r =  1  To Len(Txt) \  2 
    c = CInt("&H" + Mid(Txt, (r *  2 ) -  1 ,  2 ))
    BN = ""
    If c >=  128  Then c = c -  128 : BN = BN + "1" Else BN = BN + "0"
    If c >=  64  Then c = c -  64 : BN = BN + "1" Else BN = BN + "0"
    If c >=  32  Then c = c -  32 : BN = BN + "1" Else BN = BN + "0"
    If c >=  16  Then c = c -  16 : BN = BN + "1" Else BN = BN + "0"
    If c >=  8  Then c = c -  8 : BN = BN + "1" Else BN = BN + "0"
    If c >=  4  Then c = c -  4 : BN = BN + "1" Else BN = BN + "0"
    If c >=  2  Then c = c -  2 : BN = BN + "1" Else BN = BN + "0"
    If c >=  1  Then c = c -  1 : BN = BN + "1" Else BN = BN + "0"
    
    DekoduvannaFF16ToBin2 = DekoduvannaFF16ToBin2 + BN
  Next
End Function
Public Function DekoduvannaBin2ToAsci(Txt As String) As String
Dim r As Long
Dim BN As String
Dim c As Long
Dim bb As String
  For r =  1  To Len(Txt) \  8 
    c =  0 
    bb = Mid(Txt, (r *  8 ) -  7 ,  8 )
    c = c + IIf(Mid(bb,  1 ,  1 ),  128 ,  0 )
    c = c + IIf(Mid(bb,  2 ,  1 ),  64 ,  0 )
    c = c + IIf(Mid(bb,  3 ,  1 ),  32 ,  0 )
    c = c + IIf(Mid(bb,  4 ,  1 ),  16 ,  0 )
    c = c + IIf(Mid(bb,  5 ,  1 ),  8 ,  0 )
    c = c + IIf(Mid(bb,  6 ,  1 ),  4 ,  0 )
    c = c + IIf(Mid(bb,  7 ,  1 ),  2 ,  0 )
    c = c + IIf(Mid(bb,  8 ,  1 ),  1 ,  0 )
    DekoduvannaBin2ToAsci = DekoduvannaBin2ToAsci + Chr(c)
  Next
End Function

Public Function DecoderSMS(s As String) As String
 Dim i As Long
 Dim n As Long
 Dim mem As String
 Dim mem2 As String
 Dim GotKod As String
i =  1 : n =  1 
Do
 GotKod = GotKod + "0" + Mid(s, i + n,  8  - n) + IIf(n >  1 , mem, "")
 'Debug.Print Chr(Asc(DekoduvannaBin2ToAsci("0" + Mid(s, i + n, 8 - n) + IIf(n > 1, mem, ""))))
 mem = Mid(s, i, n)
  If n =  7  Then
    GotKod = GotKod + "0" + mem
    'Debug.Print Chr(Asc(DekoduvannaBin2ToAsci("0" + mem)))
  End If
  i = i +  8 : n = n +  1 : If n >  7  Then n =  1 
Loop While i < Len(s)
DecoderSMS = GotKod
End Function

запускаем функцию RozshifrovkaSMS
ремуем s = "079183602720000004038177F700001110013090318039B55AAD56ABD56AB55AAD56ABD56AB55AAD56ABD5142A954A212CEBD9E9311A844ED3D37650BB3E4F8F5D64753D3D2EBBEA61"
отключаем дебугеры

Не знаю откуда начинаются смс послания. Я нашел его вручную s = Mid(s, 47)


с уважением Андрей
...
Рейтинг: 0 / 0
10.01.2011, 16:01
    #37051173
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Андрей159, рад за Вас, об этом "уже имеющего кода смс в формате PDU" можно по подробней, у Вас имеется код смс в формате PDU а у меня нет
...
Рейтинг: 0 / 0
10.01.2011, 16:16
    #37051195
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
> Автор: Ципихович Эндрю


Заколебал! Может хватит лезть во все топики?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.01.2011, 16:35
    #37051217
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Игорь Горбонос> Автор: Ципихович Эндрю


Заколебал! Может хватит лезть во все топики?


Хочу всё знать, Rozshifrovka, SMS это же интересно, может чего узнаю
...
Рейтинг: 0 / 0
10.01.2011, 16:47
    #37051227
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
> Автор: Ципихович Эндрю
> Хочу всё знать

Скачай киножурнал "Хочу все знать" и просматривай

> Rozshifrovka, SMS это же интересно, может чего узнаю

Для этого совсем не обязательно лезть с коментариями в топик. Сиди и читай, что напишут. А попутно напрягай
гугл/яндекс/yahoo поиском информации об смс и как завещал великий Ленин "Учится, учится и ещё раз учится".

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.01.2011, 16:55
    #37051232
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Игорь Горбонос, Сиди и читай, что напишут.
А что напишут, человек сделал, выложил, мол кому пригодится, может что интересное, почему не поддержать, а если никто ничего не спросит, больше он выкладывать не будет
...
Рейтинг: 0 / 0
10.01.2011, 21:51
    #37051580
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Вопшем по скайпе я тебе по подробней все напишу.

Вопшем, подключаю телефон по RS232 определен как модем. Можно также тестировать команды в HyperTerminal. АТ команды использовал общего назначения:
при ответе без запроса RING (звонок) посылаю AT+CLCC - вызначаю номер телефона
AT+CNMI=2,1,0,0,0 - команда активации напоминаний если прийдет смс сообщение
если смс пришло прийдет ответ +CMTI: .....номер сообщения
AT+CMGR=номер сообщения - дает смс сообщение в формате PDU
AT+CMGD=номер сообщения - удаляет выбраное сообщение
Важно! настроить модем чтоб он знал откуда читать сообщения, поскольку например у меня в телефоне нет подобной настройки в меню и телефон все сообщения сохраняет в памьять телефона а на карточку, а средством АТ команд можно заставить как и сохранять куда угодно так и читать откуда угодно. По умолчанию чтения у меня было с карточки, поэтому я не мог разобраться с разшифровкой по началу, поскольку разшифрововал старое сообщение. Переключается командой AT+CPMS="ME" (выбрано памьять телефона) или AT+CPMS="SM" (карточка) Инструкция предусматривает три memory по этому рекомендуют делать запись такой AT+CPMS="ME","ME","ME" или AT+CPMS="SM","SM","SM"
...
Рейтинг: 0 / 0
10.01.2011, 22:08
    #37051597
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Разблокируйте Ципиховича. Чем плохо что ваш форум живой. Лазить по топиках не преступление. К тому же, он кажись не нарушил правил под которые подписался. Немножко не удобно на форуме когда старые темы при новом ответе становляться первыми, но всеже терпимо. Для меня этот форум чесно, считался б не жывой и не интересен если б на нем не было 7-10 человек которые дают самые точные и умные ответы. И на других форумах в которых система покруче этого я не сижу вот по той причине, что ответа надежного могут не дать.
...
Рейтинг: 0 / 0
10.01.2011, 22:10
    #37051600
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Андрей159,

Тебе может и интересно, зато неинтересно тем, кто приходит сюда за консультацией, а видит вместо этого потоки словесного поноса.
...
Рейтинг: 0 / 0
10.01.2011, 22:12
    #37051601
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Всегда себя можете перепроверить на этом сайте http://www.twit88.com/home/utility/sms-pdu-encode-decode
...
Рейтинг: 0 / 0
10.01.2011, 22:20
    #37051610
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Это же форум , а я мечтал еще 5-10 лет назад чтоб у Вас в меню Статьи были также разделы с уже готовые решения по темах с возможными ключевыми словами для поиска того google, yandex и так далее.

Второе. На форуме не предоставлена возможность обмениваться мыслями в приват, хоть знатаков больше чем достаточно, но это может другой случай
...
Рейтинг: 0 / 0
10.01.2011, 23:06
    #37051656
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Андрей159Второе. На форуме не предоставлена возможность обмениваться мыслями в приват, хоть знатаков больше чем достаточно, но это может другой случай У многих "знатоков" есть почта, чем не приват.
В конце, концов оставь свои координаты с просьбой связатся с тобой определенного мембера, я не думаю, что тебе откажут. Во всяком случае диалог начнут в любом случае. Но в случае с Эндрю, диалог быстро перешел из диалога в ответы на простейшие вопросы и за год(или сколько он здесь) на диалог так и не вышел.
...
Рейтинг: 0 / 0
10.01.2011, 23:39
    #37051683
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMS Декодирую PDU формат
Понятно. Я по всех топках не смотрю, думал з горяча забанили. Хотя это не решение.
С уважением Андрей

P.S. Почтой почти не пользуюсь. Кому-то меня не понять. Сейчас почта у меня только для подтверждения реестрации на сайтах. Если раньше почтой было удобно пользоваться, то сегодня на почту приходит только много спама. После этого как у меня вместо dial-up-овского соединения сегодня интернет 22мб (примем) - перестал воспринимать ICQ поменяв его на Skype и совсем другие новые интересы. У кого медленный интернет, скайпом почти не пользуются и юзают то что им под силу. Единственное что нас может обьеденить - это что-то общее, проблема, ее решение, развлечение и общение - полезная информация. Одним из таких обьединений и есть Ваш форум.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SMS Декодирую PDU формат / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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