Вверх ↑
Этот топик читают: Гость
Ответов: 288
Рейтинг: 4
#31: 2010-04-04 01:57:55 ЛС | профиль | цитата
nesco, на счёт направления да, а на счёт строки нет! У тебя разбивает вот так (6F77;B37;C0E;9BD;F6E) а надо вот так(6;F77;B37;C0E;9BD;F6E). первую цифру 6 не отделяет.
карма: 2

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#32: 2010-04-04 02:09:32 ЛС | профиль | цитата
Да пожалуйста



Add(MainForm,16172425,210,238)
{
Width=264
Height=198
}
Add(Memo,140264,371,315)
{
Top=20
Width=255
Height=145
}
Add(Edit,1974397,252,273)
{
Left=55
Width=200
Text="6F77B37C0E9BDF6E"
}
Add(Button,284087,210,315)
{
link(onClick,12060061:doData,[])
}
Add(DoData,12060061,252,315)
{
link(onEventData,6389307:doRConvert ,[(306,321)(306,328)])
link(Data,1974397:Text,[])
}
Add(InlineCode,6389307,329,315)
{
WorkPoints=#37:doConvert=Входящая не разбитая строка|11:doRConvert |
EventPoints=#34:onResult=Выходящая разбитая строка|
DataPoints=#4:Data|5:Count|3:Str|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|0:|18: Data:THI_Event;|19: Count:THI_Event;|17: Str:THI_Event;|22: onResult:THI_Event;|3: |52: procedure doConvert(var _Data:TData; Index:word);|56: procedure doRConvert(var _Data:TData; Index:word); |5: end;|0:|14:implementation|0:|61:procedure THiAsmClass.doConvert(var _Data:TData; Index:word);|20:var i, l: Integer;|21: txt, st:string;|18: cnt:integer;|5:begin|35: txt := ReadString(_Data, Data);|34: st := ReadString(_Data, Str);|37: cnt := ReadInteger(_Data, Count);|24: Replace(txt, ,');|3:TRY|20: l := Length(txt);|25: if l <= cnt then exit;|16: i := cnt + 1;|24: while i <= l do begin|25: Insert(st, txt, i);|13: Inc(l);|22: Inc(i, cnt + 1);|7: end;|7:FINALLY|42: _hi_CreateEvent(_Data, @onResult, txt);|4:END;|4:end;|0:|62:procedure THiAsmClass.doRConvert(var _Data:TData; Index:word);|20:var i, l: Integer;|21: txt, st:string;|18: cnt:integer;|5:begin|35: txt := ReadString(_Data, Data);|34: st := ReadString(_Data, Str);|37: cnt := ReadInteger(_Data, Count);|24: Replace(txt, ,');|3:TRY|20: l := Length(txt);|25: if l <= cnt then exit;|30: i := length(txt) - cnt + 1;|23: while i > 0 do begin|25: Insert(st, txt, i);|18: Dec(i, cnt);|7: end;|45: if (cnt mod 2) = 0 then Delete(txt, 1, 1);|7:FINALLY|42: _hi_CreateEvent(_Data, @onResult, txt);|4:END;|4:end;|0:|4:end.|0:|
link(onResult,140264:doAdd,[])
link(Count,12713029:Value,[])
link(Str,2366746:Value,[])
}
Add(Memory,12713029,336,238)
{
Default=Integer(3)
}
Add(Memory,2366746,343,273)
{
Default=String(;)
}

карма: 22

0
Ответов: 288
Рейтинг: 4
#33: 2010-04-04 02:19:36 ЛС | профиль | цитата
Благодарю nesco, всё отлично работает.
карма: 2

0
Ответов: 288
Рейтинг: 4
#34: 2010-04-30 01:23:56 ЛС | профиль | цитата
nesco, не мог-бы ты написать небольшой код для вставки в InlineCode для сборки строки EMS за 500р? Принцип действия должен быть таким.code_18019.txt
карма: 2

0
файлы: 1code_18019.txt [9.4KB] [548]
Разработчик
Ответов: 26170
Рейтинг: 2127
#35: 2010-04-30 01:57:16 ЛС | профиль | цитата
Sova-Kmv, а ты не можешь написать какую-либо исходную и результирующйю строку
карма: 22

0
Ответов: 288
Рейтинг: 4
#36: 2010-04-30 02:06:57 ЛС | профиль | цитата
nesco, в результате должно получится вот это-Вам поступило MMS от mms@megafon.ru. Для просмотра используйте адрес в Интернет http://mms.megafon.ru номер: r03qnxtlo пароль: kay6pi8 или с телефона http://mms.megafon.ru/msg/r03qnxtlo/kay6pi8 . Получите бесплатные настройки MMS: отправьте SMS с цифрой 3 на номер 5049 и сохраните настройки.
карма: 2

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#37: 2010-04-30 02:14:50 ЛС | профиль | цитата
Sova-Kmv, а куда двались первые 05 (06)
Насколько понял, последнее значение -- номер части, предпоследня -- количество частей, первое значение -- идентификатор, а 05 (длина UDHI) где, и что означает -- длина UDHI
карма: 22

0
Ответов: 288
Рейтинг: 4
#38: 2010-04-30 02:15:29 ЛС | профиль | цитата
nesco, а исходную я могу зарание разбить как мне угодно, например вот так:
MMS;0500031D0501;Вам поступило MMS от mms@megafon.ru. Для просмотра используйте адре
MMS;0500031D0502;с в Интернет http://mms.megafon.ru номер: r03qnxtlo пароль: kay6pi8
MMS;0500031D0505;49 и сохраните настройки.
MMS;0500031D0503; или с телефона http://mms.megafon.ru/msg/r03qnxtlo/kay6pi8 . Полу
MMS;0500031D0504;чите бесплатные настройки MMS: отправьте SMS с цифрой 3 на номер 50
карма: 2

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#39: 2010-04-30 02:23:22 ЛС | профиль | цитата
И когда должно выдаваться вот это -- Внимание! Не полное EMS сообщение
------------ Дoбавленo в 02.17:
Sova-Kmv писал(а):
а исходную я могу зарание разбить как мне угодно

Да это ясно, не ясно где применяется длина UDHI
------------ Дoбавленo в 02.20:
А зачем нужен ID внутри IC
------------ Дoбавленo в 02.23:
Насколько я понимаю, на вход последовательно поступает некая последовательность строк в формате -- MMS;LLCCCCCCQQNN;<text> их надо собрать и выдать как текст, правильно
карма: 22

0
Ответов: 288
Рейтинг: 4
#40: 2010-04-30 02:24:09 ЛС | профиль | цитата
nesco, 05-это длинна UDHI т.е. 10ть символов 00031D0501, а ID пусть будет вот это 00031D-6ть символов. ну а на счёт всего остального ты прав.
карма: 2

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#41: 2010-04-30 02:31:05 ЛС | профиль | цитата
Ты ответил не на все мои вопросы.
И что конкретно ты подаешь на вход, то что написал или что-то другое
Да, и зачем там IC, неужели это нельзя сделать на HiAsm'e
карма: 22

0
Ответов: 288
Рейтинг: 4
#42: 2010-04-30 02:42:26 ЛС | профиль | цитата
nesco, Длинна тебе не нужна. Ана входе может быть и вот так:
MegaFon;050003380201;Ваш баланс пополнен на 46,25 руб. * Самое точное время - подведи ча
MMS;0500031D0501;Вам поступило MMS от mms@megafon.ru. Для просмотра используйте адре
MMS;0500031D0502;с в Интернет http://mms.megafon.ru номер: r03qnxtlo пароль: kay6pi8
MMS;0500031D0503; или с телефона http://mms.megafon.ru/msg/r03qnxtlo/kay6pi8 . Полу
MMS;0500031D0504;чите бесплатные настройки MMS: отправьте SMS с цифрой 3 на номер 50
MMS;0500031D0505;49 и сохраните настройки.
MegaFon;050003380202;сы *149#
Т.Е последняя EMS от мегафона может быть через 70-50 частей строки.
Или вот так:
MMS;0500031D0501;Вам поступило MMS от mms@megafon.ru. Для просмотра используйте адре
MMS;0500031D0502;с в Интернет http://mms.megafon.ru номер: r03qnxtlo пароль: kay6pi8
MegaFon;050003380201;Ваш баланс пополнен на 46,25 руб. * Самое точное время - подведи ча
MegaFon;050003380202;сы *149#
MMS;0500031D0503; или с телефона http://mms.megafon.ru/msg/r03qnxtlo/kay6pi8 . Полу
MMS;0500031D0504;чите бесплатные настройки MMS: отправьте SMS с цифрой 3 на номер 50
MMS;0500031D0505;49 и сохраните настройки.
Так уж выдаёт телефон!
карма: 2

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#43: 2010-04-30 02:46:45 ЛС | профиль | цитата
Ага, те источник сообщения передается саммым первым
И все же, разве это нельзя сделать на существующих компонентах, зачем именно IC
карма: 22

0
Ответов: 288
Рейтинг: 4
#44: 2010-04-30 02:55:26 ЛС | профиль | цитата
nesco,Да источник первый. всё портит отсутствующая часть какого либо EMS.
карма: 2

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#45: 2010-04-30 03:01:43 ЛС | профиль | цитата
Sova-Kmv писал(а):
всё портит отсутствующая часть какого либо EMS

Хорошо, а как ты предполагаешь отслеживать отсутствующую часть и выдавать сообщение -- Внимание! Не полное EMS сообщение
Вот, они идут и идут, когда мы узнаем, что не пришла какая-то часть сообщения
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)