Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кто использовал библиотеку ICSharpCode? 
:(
    Опции темы
vlsaf
Дата 2.10.2008, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007

Репутация: нет
Всего: 1



Всем привет.

Пытаюсь научиться пользоваться библиотекой ICSharpCode для сжатия строки.
Проект для PDA, подтому стандартного пространства имен System.IO.Compression там нету.

Что-то не получается сжать строку.

Вот пример из мануала
Код

        using (Stream inStream = new GZipInputStream(File.OpenRead(args[0])))
        using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) {
            byte[] buffer = new byte[4096];
            StreamUtils.Copy(inStream, outStream, buffer);
        }


Но у меня не файл, а строка.
Строка переводится в поток при помощи 

Код

           string strInput = "1111111111111111111111111111111111111111111111111111";

            MemoryStream memoryStream = new MemoryStream();
            memoryStream.Write(System.Text.Encoding.UTF8.GetBytes(strInput), 0, System.Text.Encoding.UTF8.GetBytes(strInput).Length);


Хочется иметь следующую цепочку.
Входной поток
Выходной поток
Сжатая строка.

Что-то не получается.
Может кто поможет?
Повышение репутации гарантировано  smile 
PM   Вверх
feanor59
Дата 3.9.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 24.1.2008
Где: Пермь

Репутация: нет
Всего: нет



Между делом, тему апну. Проблема в том, что при работе с MemoryStream в выходной поток (который должен содержать сжатую строку), записывается только 2 байта (всегда одни и те же, вне зависимости от входных данных), которые ещё и не читаются из этого потока (хотя размер потока = 2).
Код

public Form1()
    {
      InitializeComponent();

      MemoryStream outdata = new MemoryStream();
      DeflaterOutputStream comp = new DeflaterOutputStream(outdata);
      string str = "Test String!!!!";
      Byte[] testBuff = Encoding.ASCII.GetBytes(str);
      comp.Write(testBuff, 0, testBuff.Length);
      comp.Flush();
      outdata.Flush();

      Byte[] compBuff = new Byte[ms.Length];
      outdata.Read(compBuff, 0, compBuff.Length);
      textBox1.Text = Encoding.ASCII.GetString(compBuff, 0, compBuff.Length);
    }

В textBox1 всегда пусто, но никакие эксепшены не вызываются.
PM MAIL ICQ GTalk   Вверх
feanor59
Дата 3.9.2009, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 24.1.2008
Где: Пермь

Репутация: нет
Всего: нет



разобралсяsmile в коде не хватает строчки comp.Finish();
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.