Кстати, почему не больше 2 Гб? KOL-овский стрим вполне корректно обрабатывает до 4 Гб.
------------ Дoбавленo в 13.49:
GroZID, держи:
Этот топик читают: Гость
|
Ответов: 4672
Рейтинг: 768
|
|||
| карма: 26 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Netspirit писал(а): KOL-овский стрим вполне корректно обрабатывает до 4 ГбУ нас в компонентах не Dword, а Integer |
|||
| карма: 22 |
|
|
Ответов: 4672
Рейтинг: 768
|
|||
|
А на что это влияет? Например, Position будет отрицательной, ещё что?
|
|||
| карма: 26 |
|
|
Ответов: 23
Рейтинг: 0
|
|||
|
Netspirit, спасибо Вам, исходя их сказанного я понимаю что замену файлов и сохранение реализовать не получится. Так ли это?
|
|||
| карма: 0 |
|
|
Ответов: 4672
Рейтинг: 768
|
|||
|
Получится: нужно создавать новый архив, писать в него заменяемые файлы из файлов, незаменямые - из исходного архива. Положение файлов в исходном архиве я показал как получить. Осталось в новом архиве корректно сформировать заголовок, вычислив положения и размеры добавляемых файлов. В принципе, сравнительно не сложно, нужно только проработать логику.
|
|||
| карма: 26 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
Netspirit писал(а): GroZID, держи: |
|||
| карма: 25 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Netspirit писал(а): Например, Position будет отрицательной, ещё что?Да, в первую очередь именно это. Можно попробовать, но нектороые пробовали и не получилось |
|||
| карма: 22 |
|
|
Ответов: 4672
Рейтинг: 768
|
|||
|
Tad, да там по-разному можно. Это только часть алгоритма, упрощать есть куда.
А нет, ты ошибся, цикл перебирает не байты, а количество файлов. |
|||
| карма: 26 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Netspirit писал(а): Получится: нужно создавать новый архив, писать в него заменяемые файлы из файлов,Да не получится так просто -- каталог-то динамический. Что, если файлов не четыре, а больше, и мы не знаем сколько. Каталог надо делать отдельно, хранилище отдельно, а в конце надо их объединять. Иначе при добавлении файла, тебе придется переписывать все с начала |
|||
| карма: 22 |
|
|
Ответов: 4672
Рейтинг: 768
|
|||
|
nesco, мы знаем количество - оно хранится вторым Dword-ом от начала архива.
|
|||
| карма: 26 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Netspirit писал(а): мы знаем количество - оно хранится вторым Dword-ом от начала архиваМы не знаем конечного кол-ва, если создаем новый файл из разных мест. Если просто меняем данные, то мы должны разбивать хранилище на три части от того файла, который будем менять -- начало + файл замены + конец. И так все, которые меняем, заменяя в каталоге смещения на валидные для каждого, именно каждого файла, идущего дальше меняемого |
|||
| карма: 22 |
|
|
Ответов: 4672
Рейтинг: 768
|
|||
|
И конечное количество мы знаем - раз идет замена файлов, то оно будет равным исходному. Даже если не равно исходному, мы всё равно должны указать добавляемые файлы, а раз так - то посчитать их количество несложно.
|
|||
| карма: 26 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
Netspirit, про step 32
|
|||
| карма: 25 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
Netspirit, попробуй, мне так кажется, что очень просто у тебя не получится. Почему, я описал выше. Прикинь, сколько будет заниамать по времени замена нескольких файлов другой длины в середине большого архива в 2Гб
------------ Дoбавленo в 14.38: Netspirit писал(а): а раз так - то посчитать их количество несложноДа посчитать -- это херня. А вот добавить структуру файла в конец каталога, я на тебя посмотрю, как ты это будешь делать, и какая простая схема у тебя получится -- надо разрезать каталог и хранилище, добавить файл в конец каталога и хранилища, пересчитать смещения от начала архива, сшить каталог и хранилище |
|||
| карма: 22 |
|
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
|
Редактировалось 1 раз(а), последний 2025-01-17 15:32:58 |
|||
| карма: 0 |
|




Поиск
Друзья
Администрация