Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 25 • Страница 2 из 2<  1  2
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 02.06.2005
Откуда: Khabarovsk
Avaddon
Нет не пусто :)
Просто по поводу ф-ии fwrite() я ничего похожего не нашел. Все то же что я и выше писал :)



Партнер
 

Member
Статус: Не в сети
Регистрация: 25.01.2003
Откуда: UA
spmn писал(а):
По всей видимости этот массив объявлен как не динамический.

Разницы нет динамический или статический, адрес есть у всего. Т.е. fwrite Может записать абслютно любой блок данных, ему неважно что лежит по этому адресу и в каком формате.
Код:
short int i = 1;
...
fwrite(&i, sizeof(short int), 1, ou);

работает как раз нормально, запишет тебе в файл 2 байта один из которых 0 второй 1... В текстовом виде как ты пытаешся просматривать это выглядит соответственно как пробел и закорлючка, все правильно.
Второй вариант с точки зрения компилятора ничем не отличается от первого. Третий неверен принципиально, ты записываешь в файл адрес переменной или даже адрес указателя на переменную :)
RLE алгоритмы я когда-то реализовывал на асме для работы с .pcx форматом, там упаковка сделана достаточно эффективно.
1. Если символ <192(2 старших бита не установлены) и он не повторяется то просто пишется этот символ
2. Если он поторяется то создается 1 байт заголовок - старшие 2 бита установлены, оставшиеся 6 - количество повторений символа, второй байт сам символ.
3. Если символ >=192 то в любом случае создается заголовок и вторым байтом идет символ, даже если символ был 1 :)
Алгоритм очень простой, ненужен выделенный символ-метка, неплохо сжимает повторяющиеся блоки и создает минимум лишней информации.
Файл читай в буфер кусками, и это буфер побайтно перегоняй с обработкой в другой буфер или прямо в выходной файл(fputc)...


 

Member
Статус: Не в сети
Регистрация: 02.06.2005
Откуда: Khabarovsk
KaYot
KaYot писал(а):
Файл читай в буфер кусками

Я не читаю файл кусками. Я читаю по по байту и сравниваю с предыдущим и сразу пишу. Попутно считаю и если встречаются подходящиеся последовательности сжимаю. Только вот писать пока ... мягко говоря не получается :)


 

Member
Статус: Не в сети
Регистрация: 25.01.2003
Откуда: UA
spmn писал(а):
Я читаю по по байту

А зачем тогда fread/fwrite использовать ?? Есть более быстрые/удобные функции fgetc/fputc просто читающие/пишущие 1 байт без всяких массивов, указателей, заморочек а еще и с внутренним буферизированием(считай быстрее в разы).


 

Member
Статус: Не в сети
Регистрация: 02.06.2005
Откуда: Khabarovsk
KaYot
KaYot писал(а):
fgetc/fputc

Надо поэксперементировать. Спасибо за совет :)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 25 • Страница 2 из 2<  1  2
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan