Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.04.2009, 19:31
Alexsandra вне форума Посмотреть профиль Отправить личное сообщение для Alexsandra Найти все сообщения от Alexsandra
  № 1  
Ответить с цитированием
Alexsandra

Регистрация: Apr 2009
Сообщений: 6
По умолчанию String to ByteArray + deflate() проблема возврата данных.

Поставлена задача:
1) перевести String в ByteArray;
2) применить к ByteArray компрессию deflate();
3) перевести ByteArray в String и записать в файл (методом копи паст с трейса);
4) загрузить текстовый файл перевести String в ByteArray;
5) применить к ByteArray декомпрессию inflate();
6) перевести ByteArray в String и вывести String.

Для начала решила попробовать без записи в файл делала так:
Код AS3:
var date0:ByteArray = new ByteArray();
var str0:String = "Test convert String to ByteArray"
date0.writeObject(str0);
trace(date0, date0.length)
 
date0.deflate();
trace(date0, date0.length)
 
date0.position = 0;
var str1:String = date0.readUTFBytes(date0.length);
var date1:ByteArray = new ByteArray();
date1.writeObject(str1);
trace(date1, date1.length)
 
date1.inflate(); // Error: Error #2058: Ошибка при распаковке данных.
trace(date1, date1.length)
 
var str2:String = date1.readUTFBytes(date1.length);
trace(str2);
Голова уже квадратная, что я не так делаю.
Возможно подход изначально не верный подскажите правильное решение.


Последний раз редактировалось Alexsandra; 28.04.2009 в 19:39.
Старый 28.04.2009, 19:50
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
При раскодировании данных, упакованных в формат, использующий алгоритм сжатия DEFLATE (например, формат gzip или zip), вызов метода inflate() не сработает для объекта ByteArray, содержащего метаданные. Сначала необходимо отделить метаданные, которые входят в состав упакованного формата данных, от самих сжатых данных. Дополнительную информацию см. в описании метода deflate().
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.04.2009, 20:43
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 3  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
1. для записи строк используются методы writeUTF и writeUTFByte, а не writeObject.
2. после сжатия данные скорее всего как строка и не запишутся, так как могут присутствовать нулевые байты, а в мире это означает конец строки.
3. что Вы там распаковываете вообще не ясно.

Старый 29.04.2009, 04:13
Alexsandra вне форума Посмотреть профиль Отправить личное сообщение для Alexsandra Найти все сообщения от Alexsandra
  № 4  
Ответить с цитированием
Alexsandra

Регистрация: Apr 2009
Сообщений: 6
Тему можно закрывать вопрос решен.
На AIR написала все тоже самое только не перегоняла ByteArray в String вот тут
Код AS3:
var str1:String = date0.readUTFBytes(date0.length);
Цитата:
1. для записи строк используются методы writeUTF и writeUTFByte, а не writeObject.
не принципиально writeObject, тоже подходит и проблем никаких.

Старый 29.04.2009, 07:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Alexsandra, это совсем разные методы записи.

Старый 29.04.2009, 14:58
Alexsandra вне форума Посмотреть профиль Отправить личное сообщение для Alexsandra Найти все сообщения от Alexsandra
  № 6  
Ответить с цитированием
Alexsandra

Регистрация: Apr 2009
Сообщений: 6
etc, я не спорю, но это действительно не принципиально в данном случаем, более того у адобовцев с текстом и xml такая же запись через writeObject.

Старый 29.04.2009, 16:35
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
где у них такая запись?

Старый 29.04.2009, 19:42
Alexsandra вне форума Посмотреть профиль Отправить личное сообщение для Alexsandra Найти все сообщения от Alexsandra
  № 8  
Ответить с цитированием
Alexsandra

Регистрация: Apr 2009
Сообщений: 6
К примеру http://help.adobe.com/en_US/AIR/1.5/...de46-7d54.html
Код AS3:
var myXML:XML =  
     <order> 
         <item id='1'> 
             <menuName>burger</menuName> 
             <price>3.95</price> 
         </item> 
         <item id='2'> 
             <menuName>fries</menuName> 
             <price>1.45</price> 
         </item> 
       </order> 
 
    // Write XML object to ByteArray 
    bytes.writeObject(myXML);

Старый 30.04.2009, 07:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Да, вот только там целый XML пишут, а не String.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:27.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.