Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2010, 17:27   #1
fessssss
Новичок
Джуниор
 
Регистрация: 03.05.2010
Сообщений: 4
По умолчанию Архиваторы и обработка файлов

Уважаемые форумчане, может быть, кто-то может помочь с следующей проблемой: в данный момент я пишу архиватор на С#, если быть точнее реализирую Ziv-Lempel Alg. - LZ77. Вкратце опишу алгоритм:
1. Задаются размеры словаря и буфера.
2. Потом выбирается максимальная(по размеру) комбинация символов совпадающая в словаре с началом буфера и кодируется парой чисел - смещения + собственно длины.
Так вот, проблема возникла с обработкой файлов... Я хотел пользоваться StreamReader/Writer, но пришлось задуматься в связи с тем, что хотелось бы работать со строками....
Как с SR реализировать чтение в стринг(а не в char[]) поблочно начиная с некоторой позиции?.... Возможно ли преобразование char[] в string?
Каким I/O обработчиком лучше всего воспользоваться в данной ситуации?
fessssss вне форума Ответить с цитированием
Старый 03.05.2010, 17:50   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Цитата:
Сообщение от fessssss Посмотреть сообщение
Как с SR реализировать чтение в стринг(а не в char[]) поблочно начиная с некоторой позиции?.
Код:
StreamReader.ReadBlock( )
Цитата:
Сообщение от fessssss Посмотреть сообщение
Возможно ли преобразование char[] в string?
Код:
char[] charBuf = new char[1024];
string s = new string(charBuf);
Hollander вне форума Ответить с цитированием
Старый 03.05.2010, 17:55   #3
fessssss
Новичок
Джуниор
 
Регистрация: 03.05.2010
Сообщений: 4
По умолчанию

Код:
char[] charBuf = new char[1024];
string s = new string(charBuf);
Но ведь это только при инициализации! а если у меня уже есть в проге строка.. и нужно просто к ней добавить...
? каждый раз такую процедуру делать?
fessssss вне форума Ответить с цитированием
Старый 03.05.2010, 17:55   #4
fessssss
Новичок
Джуниор
 
Регистрация: 03.05.2010
Сообщений: 4
По умолчанию

Код:
char[] charBuf = new char[1024];
string s = new string(charBuf);
Но ведь это только при инициализации! а если у меня уже есть в проге строка.. и нужно просто к ней добавить...
? каждый раз такую процедуру делать?
fessssss вне форума Ответить с цитированием
Старый 03.05.2010, 18:07   #5
(IICuX)
Пользователь
 
Регистрация: 27.04.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от fessssss Посмотреть сообщение
Код:
char[] charBuf = new char[1024];
string s = new string(charBuf);
Но ведь это только при инициализации! а если у меня уже есть в проге строка.. и нужно просто к ней добавить...
? каждый раз такую процедуру делать?
ваша строка += new string(ваш массив символов);
(IICuX) вне форума Ответить с цитированием
Старый 03.05.2010, 18:12   #6
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Вот инфа по I/O: http://msdn.microsoft.com/en-us/library/336wast5.aspx
Лично я использовал бы StreamReader/Writer
Hollander вне форума Ответить с цитированием
Старый 04.05.2010, 19:49   #7
fessssss
Новичок
Джуниор
 
Регистрация: 03.05.2010
Сообщений: 4
По умолчанию

появился еще 1 вопрос.. как с помощью всего этого распознавать русские буквы?? когда с английскими работаю - прога архивит текстовый файл и розархивирует его нормально, а если нет получаю, что-то вроде "????_????_??"... для фразы "лама_мала_ма"... какую кодировку нужно выбрать?
fessssss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Архиваторы Xatr Софт 9 09.10.2009 07:22
Обработка файлов Си++ modulrev Помощь студентам 22 19.02.2009 18:53
Архиваторы SERG1980 Компоненты Delphi 6 29.08.2008 13:39