![]() |
|
||||||||||
|
|||||
|
[+5 18.06.13]
[+1 20.07.13] Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
|
Вот рабочая функция,
а если раскоментировать строки - все привет... private function func1(co:ByteArray):ByteArray{ var addinfo:ByteArray=new ByteArray(); co.readBytes(addinfo,0,22); co.position=0; if (addinfo.toString().substr(0,2)=='55'){ var addicontlen:String=addinfo.toString().substr(2,10); addinfo.clear(); var addilen:uint=22; for(var i:int=0;i<10;i++){ if (addicontlen.substr(i,1)!=='0'){ addilen+=uint(addicontlen.substr(i)); break; } } ob_req.txt=co.readUTFBytes(addilen); var ty:int=int(ob_req.txt.substr(12,1)); if (ty===1){ //addinfo.writeUTFBytes('AAA'); }else if(ty===2){ //addinfo.writeUTFBytes('BBB'); } addinfo.writeBytes(co,addilen); return addinfo; } ob_req.txt=''; return co; } |
|
|||||
|
Для начала.....
Вы пытаетесь сделать чтение из пустого ByteArray'а. Причём именно 22 байта. Откуда им там взяться, если вы только-что вызвали его конструктор? Он пуст! А что вы хотите сделать то? Последний раз редактировалось FlashRus; 12.12.2012 в 15:35. |
|
|||||
|
[+5 18.06.13]
[+1 20.07.13] Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
|
ну какого пустого - я в пустой пишу!
говорю же - функция РАБОЧАЯ! Добавлено через 54 минуты Ну как!?? Неужели никто и ничего и никак?? |
|
|||||
|
Я вам ещё раз повторяю!
Вы пытаетесь считать пустой ByteArray. Смотрим пошагово.... Описали переменную и дали ей новый ПУСТОЙ ByteArray. Ура - теперь у нас есть чистый, девственный экземпляр класса ByteArray. Берём другой ByteArray (неважно - пустой он или нет) и пытаемся записать в него ровно 22 байта с нулевой позиции из addinfo (нашего наичистейшего массива байтов). Теперь вопрос (та-да-да-да): Откуда у нас добавятся байты???? Что-же будет в нашем co??? Могу объяснить совсем на пальцах. Берём ведёрко с чем нибудь (а может и ни с чем), берём второе ведёрко (100% - пустое) и начинаем перекладывать из второго ведёрка в первое его содержимое. Что же будет в первом ведёрке, после того как мы завершим перекладывать содерижмое из второго??? Последний раз редактировалось FlashRus; 12.12.2012 в 15:38. |
|
|||||
|
[+5 18.06.13]
[+1 20.07.13] Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
|
Дааа - буду краток, вы просто не правильно понимаете данную строку кода.
В ней идет чтение из co и запись в addinfo (который действительно пустой, т.к. только что создан). В принципе достаточно того, что я сказал, что функция полностью рабочая когда две строки (в нижней части) закоментированы. |
|
|||||
|
[+5 18.06.13]
[+1 20.07.13] Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
|
iNils - вот еще раз полностью функция.
Если строки НЕ закомментированы, то в указанном месте просто виснет (прекращает выполнятся код) - без ошибок, без каких-то сообщений. Пробовал try - catch - ничего не выдает. Если две строки ЗАкомментированы (как показано), то все работает. co - на входе примерно 2KB. Flash Player (debug версия) 11,5,502,110 private function func1(co:ByteArray):ByteArray{ var addinfo:ByteArray=new ByteArray(); co.readBytes(addinfo,0,22); co.position=0; if (addinfo.toString().substr(0,2)=='55'){ var addicontlen:String=addinfo.toString().substr(2,10); addinfo.clear(); var addilen:uint=22; for(var i:int=0;i<10;i++){ if (addicontlen.substr(i,1)!=='0'){ addilen+=uint(addicontlen.substr(i)); break; } } ob_req.txt=co.readUTFBytes(addilen); var ty:int=int(ob_req.txt.substr(12,1)); if (ty===1){ //addinfo.writeUTFBytes('AAA'); }else if(ty===2){ //addinfo.writeUTFBytes('BBB'); } addinfo.writeBytes(co,addilen);// <=виснет здесь если раскомментировать строки выше return addinfo; } ob_req.txt=''; return co; } Просьба прогнать у себя именно данную функцию и сообщить работает ли если строки РАСкомментированы. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Работает.
Передаваемый в функцию байт массив содержал строку 55_qwertyuio1_asdfghjk_zxcvbnm, функция вернула AAA_zxcvbnm. Если передавать 55_qwertyuio2_asdfghjk_zxcvbnm, то вернет BBB_zxcvbnm. |
|
|||||
|
[+5 18.06.13]
[+1 20.07.13] Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
|
Действительно спасибо! что потестили, данный функционал мне шипко
нужен - может при моих размерах массива глючит плейер, буду разбираться. Еще раз спасибо! Добавлено через 30 минут С небольшими строчками (массивами байтов) действительно все правильно работает а с моими размерами - глюк. Вот такая вот жалость... ( |
|
|||||
|
А сколько байт длина?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|