Вверх ↑
Этот топик читают: Гость
Ответов: 4672
Рейтинг: 768
#16: 2012-09-28 13:50:04 ЛС | профиль | цитата
Кстати, почему не больше 2 Гб? KOL-овский стрим вполне корректно обрабатывает до 4 Гб.
------------ Дoбавленo в 13.49:
GroZID, держи:
карма: 26

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#17: 2012-09-28 13:52:08 ЛС | профиль | цитата
Netspirit писал(а):
KOL-овский стрим вполне корректно обрабатывает до 4 Гб

У нас в компонентах не Dword, а Integer
карма: 22

0
Ответов: 4672
Рейтинг: 768
#18: 2012-09-28 14:00:52 ЛС | профиль | цитата
А на что это влияет? Например, Position будет отрицательной, ещё что?
карма: 26

0
Ответов: 23
Рейтинг: 0
#19: 2012-09-28 14:07:21 ЛС | профиль | цитата
Netspirit, спасибо Вам, исходя их сказанного я понимаю что замену файлов и сохранение реализовать не получится. Так ли это?
карма: 0

0
Ответов: 4672
Рейтинг: 768
#20: 2012-09-28 14:15:23 ЛС | профиль | цитата
Получится: нужно создавать новый архив, писать в него заменяемые файлы из файлов, незаменямые - из исходного архива. Положение файлов в исходном архиве я показал как получить. Осталось в новом архиве корректно сформировать заголовок, вычислив положения и размеры добавляемых файлов. В принципе, сравнительно не сложно, нужно только проработать логику.
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#21: 2012-09-28 14:15:37 ЛС | профиль | цитата
Netspirit писал(а):
GroZID, держи:
А в for step 32 никак нельзя применить ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26324
Рейтинг: 2148
#22: 2012-09-28 14:15:50 ЛС | профиль | цитата
Netspirit писал(а):
Например, Position будет отрицательной, ещё что?

Да, в первую очередь именно это. Можно попробовать, но нектороые пробовали и не получилось
карма: 22

0
Ответов: 4672
Рейтинг: 768
#23: 2012-09-28 14:18:56 ЛС | профиль | цитата
Tad, да там по-разному можно. Это только часть алгоритма, упрощать есть куда.
А нет, ты ошибся, цикл перебирает не байты, а количество файлов.
карма: 26

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#24: 2012-09-28 14:19:15 ЛС | профиль | цитата
Netspirit писал(а):
Получится: нужно создавать новый архив, писать в него заменяемые файлы из файлов,

Да не получится так просто -- каталог-то динамический. Что, если файлов не четыре, а больше, и мы не знаем сколько. Каталог надо делать отдельно, хранилище отдельно, а в конце надо их объединять. Иначе при добавлении файла, тебе придется переписывать все с начала
карма: 22

0
Ответов: 4672
Рейтинг: 768
#25: 2012-09-28 14:22:16 ЛС | профиль | цитата
nesco, мы знаем количество - оно хранится вторым Dword-ом от начала архива.
карма: 26

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#26: 2012-09-28 14:27:01 ЛС | профиль | цитата
Netspirit писал(а):
мы знаем количество - оно хранится вторым Dword-ом от начала архива

Мы не знаем конечного кол-ва, если создаем новый файл из разных мест. Если просто меняем данные, то мы должны разбивать хранилище на три части от того файла, который будем менять -- начало + файл замены + конец. И так все, которые меняем, заменяя в каталоге смещения на валидные для каждого, именно каждого файла, идущего дальше меняемого
карма: 22

0
Ответов: 4672
Рейтинг: 768
#27: 2012-09-28 14:31:26 ЛС | профиль | цитата
И конечное количество мы знаем - раз идет замена файлов, то оно будет равным исходному. Даже если не равно исходному, мы всё равно должны указать добавляемые файлы, а раз так - то посчитать их количество несложно.
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#28: 2012-09-28 14:33:34 ЛС | профиль | цитата
Netspirit, про step 32
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26324
Рейтинг: 2148
#29: 2012-09-28 14:39:29 ЛС | профиль | цитата
Netspirit, попробуй, мне так кажется, что очень просто у тебя не получится. Почему, я описал выше. Прикинь, сколько будет заниамать по времени замена нескольких файлов другой длины в середине большого архива в 2Гб
------------ Дoбавленo в 14.38:
Netspirit писал(а):
а раз так - то посчитать их количество несложно

Да посчитать -- это херня. А вот добавить структуру файла в конец каталога, я на тебя посмотрю, как ты это будешь делать, и какая простая схема у тебя получится -- надо разрезать каталог и хранилище, добавить файл в конец каталога и хранилища, пересчитать смещения от начала архива, сшить каталог и хранилище
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#30: 2012-09-28 14:53:23 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2025-01-17 15:32:58
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)