Докачка сбойного файла!!! Удалась!!!
Moderators: Korney San, Qwertiy, marcipan, igelizm
-
- Гуру
- Posts: 175
- Joined: 16 Jun 2007, 8:56 Sat
Походу сейчас леттитБИЧики перемудрили и эта фича бесполезна, сам проверял!9off wrote:Действительно!!! Всё получилосьСпасибо, vizit73!
Кто не понял, объясню ещё раз:
Предназначено только для тех, кто качал в 1 поток!(остальным прийдётся всё таки качать по новой...)
У нас есть битый дмф файл, который не хочет докачиваться (у меня например потому что комп повис), но качать по новой его очень не хочется. Как я всё делал:
1) скачал WinHex редактор, установил (нашёл кейген, чтоб можно было файлы больше 200 кб сохранять)
2) Скачал оперу, сам юзаю фаерфокс, но с ним ничего не вышло...
3) открываем дмф файл винхексом, стираем последние примерно 10 строчек, сохраняем.
4) начинаем закачку того же файла оперой с нуля, приостанавливаем
5) переименовываем наш сохранённый файл так, как назван файл, скачиваемый оперой
6) заменяем файл оперы на сохранённый
7) продолжаем закачку.
Вуаля! Файл качается примерно с того же самого места на котором вы остановились
Советую модерам прилепить этот топик, ибо очень полезная информация, а валяется где-то в ж...
http://narod.ru/disk/12204166000/W-GET.exe.html
неоднократно возникали вопросы с докачкой сбойных файлов. вот родился такой упрощенный вариант докачки с помощью wGet, для файлов которые качались в один поток. рецепт сводится к более простой процедуре - приведенная пилюля должна быть помещена в одну папку с недокаченным файлом (с обрезанным служебным хвостиком), ссылку на файл нужно скопировать в буфер обмена и запустить пилулку - файл докачается. останется только пилюльку удалить. к сожалению упрощенный способ ограничен случаем отсутствия необходимости кук - так как я сам с куками до сих пор не разобрался. за консультациями по поводу кук (а значит летитбита) обращайтесь к AlexQwerty.
хм - надо еще прогу или батник, которая хвостик обрезает и сюда доложить - но пока не соображу как это сделать.
http://www.opennet.ru/docs/RUS/mpi-2/node169.html
никто вот в это не врубается?????????
W-GET.exe - c
зеркало
http://narod.ru/disk/12205084000/W-GET-c.exe.html

протупил я с летитбитом, для летитбита всего то рефер надо, равный прямой ссылке без имени файла, но можно и с именем. желтая пилюля для докачки с летитбита.
http://narod.ru/disk/12207792000/W-GET-c-let.exe.html
неоднократно возникали вопросы с докачкой сбойных файлов. вот родился такой упрощенный вариант докачки с помощью wGet, для файлов которые качались в один поток. рецепт сводится к более простой процедуре - приведенная пилюля должна быть помещена в одну папку с недокаченным файлом (с обрезанным служебным хвостиком), ссылку на файл нужно скопировать в буфер обмена и запустить пилулку - файл докачается. останется только пилюльку удалить. к сожалению упрощенный способ ограничен случаем отсутствия необходимости кук - так как я сам с куками до сих пор не разобрался. за консультациями по поводу кук (а значит летитбита) обращайтесь к AlexQwerty.

хм - надо еще прогу или батник, которая хвостик обрезает и сюда доложить - но пока не соображу как это сделать.
http://www.opennet.ru/docs/RUS/mpi-2/node169.html
никто вот в это не врубается?????????
блин маленько лоханулся - первая просто качает, вот эта дакачиваетint MPI_File_set_size(MPI_File fh, MPI_Offset size)
MPI_FILE_SET_SIZE(FH, SIZE, IERROR)
INTEGER FH, IERROR
INTEGER(KIND=MPI_OFFSET_KIND) SIZE
void MPI::File::Set_size(MPI::Offset size)
MPI_FILE_SET_SIZE изменяет размер файла, ассоциированного с дескриптором fh. Размер измеряется в байтах от начала файла. MPI_FILE_SET_SIZE - коллективная; все процессы в группе должны устанавливать одно и то же значение size. Если новый размер меньше, чем текущий размер файла, файл урезается до позиции, определяемой новым размером. Для реализации необязательно удалять из памяти участки файла, расположенные за этой позицией.
W-GET.exe - c
зеркало
http://narod.ru/disk/12205084000/W-GET-c.exe.html

протупил я с летитбитом, для летитбита всего то рефер надо, равный прямой ссылке без имени файла, но можно и с именем. желтая пилюля для докачки с летитбита.
http://narod.ru/disk/12207792000/W-GET-c-let.exe.html

1000byte-Cutter.rar
33,4 КБ (34 233 байт)
быстро и эффективно.
правда больше 1000 мб я еще файл не резал.

взял мб файл, сделал торрент (ну хеш сумму), обрезал - докачал и проверил хеш, все правельна режет.
2,27 ГБ (2 439 001 715 байт) такой файл уже не видит и такой 2,05 ГБ (2 205 767 680 байт). до двух гиг наверно.
1,45 ГБ (1 559 949 312 байт) такой видит и такой 1,62 ГБ (1 747 902 464 байт). до двух вообщем.
понял в чем дело - 2 147 483 648 - максимум, ровно два гига
33,4 КБ (34 233 байт)
быстро и эффективно.

правда больше 1000 мб я еще файл не резал.

взял мб файл, сделал торрент (ну хеш сумму), обрезал - докачал и проверил хеш, все правельна режет.
2,27 ГБ (2 439 001 715 байт) такой файл уже не видит и такой 2,05 ГБ (2 205 767 680 байт). до двух гиг наверно.
1,45 ГБ (1 559 949 312 байт) такой видит и такой 1,62 ГБ (1 747 902 464 байт). до двух вообщем.
понял в чем дело - 2 147 483 648 - максимум, ровно два гига
притумкал йа как лучи стелат.
во первых можно удалять не просто 1000 байт с конца, а с места UURRLLhttp://.
во вторых после этого можно удалить все нулевые байты и получить ровно скачанное.
а в третьих можно не просто удалить все нулевые байты с конца, а удалить все нулевые байты и получить полное описание скачанного.
после этого идеально было бы восстановить хвостик в рабочем состоянии, чтоб файл можно было воткнуть на закачку опять. но тама в хвостике ни фига не понятно, может можно cUrlom докачать недостающие, и может быть даже не одним, а несколькими копиями.
**************
фигня так получица. во первых если файл не встает назад на закачку, значит в служебном хвостике повреждения, и не факт что не повреждены именно UURRLL. во вторых - нулевые байты могут быть в файле не только из за недокаченых мест, чтоб различать такие места уже хорошо разбирать структуру в ручную, а не автоматически. просто отрезать 1 кб - точно удалив служебных хвостик, а потом вычистить все нулевые байты до первого ненулевого - вот так нормально будет. если файл качался в несколько потоков можно конечно вычистить все нулевые байты - если найти способ как потом перекачивать указанные байты, а их может получится много по телу файла таких мест.
вот чебы ДМ-у не записывать служебныю информацию по ходу скачивания каждые скажем - пять десять минут, в виде таблеточных файлов - положил его рядом с недокаченным запустил - служебных хвостик заменился и закачка продолжилась - не сработало береться предъидущую таблетка.
во первых можно удалять не просто 1000 байт с конца, а с места UURRLLhttp://.
во вторых после этого можно удалить все нулевые байты и получить ровно скачанное.
а в третьих можно не просто удалить все нулевые байты с конца, а удалить все нулевые байты и получить полное описание скачанного.
после этого идеально было бы восстановить хвостик в рабочем состоянии, чтоб файл можно было воткнуть на закачку опять. но тама в хвостике ни фига не понятно, может можно cUrlom докачать недостающие, и может быть даже не одним, а несколькими копиями.
**************
фигня так получица. во первых если файл не встает назад на закачку, значит в служебном хвостике повреждения, и не факт что не повреждены именно UURRLL. во вторых - нулевые байты могут быть в файле не только из за недокаченых мест, чтоб различать такие места уже хорошо разбирать структуру в ручную, а не автоматически. просто отрезать 1 кб - точно удалив служебных хвостик, а потом вычистить все нулевые байты до первого ненулевого - вот так нормально будет. если файл качался в несколько потоков можно конечно вычистить все нулевые байты - если найти способ как потом перекачивать указанные байты, а их может получится много по телу файла таких мест.
вот чебы ДМ-у не записывать служебныю информацию по ходу скачивания каждые скажем - пять десять минут, в виде таблеточных файлов - положил его рядом с недокаченным запустил - служебных хвостик заменился и закачка продолжилась - не сработало береться предъидущую таблетка.
удалялка пустоты работает со скоростью 6 кб в секунду - мало. может попробовать на ассемблере написать.
http://ru.wikipedia.org/wiki/Sed - он кажется не умеет с бинарными файлами работать.
на с надо писать, врядли программа на с будет в оперативку весь открытый файл загружать.
http://ru.wikipedia.org/wiki/Sed - он кажется не умеет с бинарными файлами работать.
на с надо писать, врядли программа на с будет в оперативку весь открытый файл загружать.
все зависит от того ка написан конкретный компилятор. даже язык ни причем. поэкспериментировал - один работает в 15 раз быстрее, но не умеет стирать, пишет пустоту, а получаются нули. зато пустые файлы создает как пулемет. я до этого пользовался прогой BigByte так она мбайтный файл создает дольше, чем вот эта балалайка 2 гига.
http://bomz.t35.com/QuickSize.rar

я бы конечно попробовал твой редактор - но как то сбойного файла под рукой нету - разве прогу написать, чтоб файлы портила.
.
да я хотел приблуду сделать, чтоб ее можно было с докачивалкой объединить. уже думаю может просто стирать не по байту, а сразу по 256 байт. тогда скорость возрастет в 256 раз, будет нормально, а вероятность что нулевые байты несколько раз подряд попадуться случайно не очень высокая, ну сотрет лишний кб - подумаешь.

http://bomz.t35.com/QuickSize.rar

я бы конечно попробовал твой редактор - но как то сбойного файла под рукой нету - разве прогу написать, чтоб файлы портила.

да я хотел приблуду сделать, чтоб ее можно было с докачивалкой объединить. уже думаю может просто стирать не по байту, а сразу по 256 байт. тогда скорость возрастет в 256 раз, будет нормально, а вероятность что нулевые байты несколько раз подряд попадуться случайно не очень высокая, ну сотрет лишний кб - подумаешь.

DownloadMasterDoctor
34,0 КБ (34 918 байт)

опитимизирован алгоритм удаления служебного хвостика, поиск ненулевого байта происходит порциями по 16000 байт (обнаружен косяк в компиляторе), разработан оригинальный алгоритм быстрого поиска ненулевого байта в 16 000 - ой порции. соответсвенно скорость возрасла с 6 кб в сек до 250 мб в сек, что превышает скорость винтчестера.
теперь будет время соеденю все это вместе с желтой пилюлькой для летитбита.
проверил гиг за пять секунд проверяет, ну значит два за 10.
вот зараза чета не работает - качаю дм-ом файл 1 мб, определяет удаляет, ровно совпадает с тем что дм показывает. создаю файл полтора гига пустой - работает, качнул с летитбита кино - скачал 1 мб - начал обрабатывать фига, не работает, толи там не нули записаны.
точно - ДМ большие файлы не нулями, а пургой записывает
в файле случайная инфа с винта - он просто как то область резервирует, и что было на винте записано так тама и есть. на 62 мб файле попробовал таже фигня получаеца. ну тут ничего не поделаешь, так скорее всего компилятор ДМ файлы создает.
34,0 КБ (34 918 байт)


опитимизирован алгоритм удаления служебного хвостика, поиск ненулевого байта происходит порциями по 16000 байт (обнаружен косяк в компиляторе), разработан оригинальный алгоритм быстрого поиска ненулевого байта в 16 000 - ой порции. соответсвенно скорость возрасла с 6 кб в сек до 250 мб в сек, что превышает скорость винтчестера.

теперь будет время соеденю все это вместе с желтой пилюлькой для летитбита.
проверил гиг за пять секунд проверяет, ну значит два за 10.
вот зараза чета не работает - качаю дм-ом файл 1 мб, определяет удаляет, ровно совпадает с тем что дм показывает. создаю файл полтора гига пустой - работает, качнул с летитбита кино - скачал 1 мб - начал обрабатывать фига, не работает, толи там не нули записаны.
точно - ДМ большие файлы не нулями, а пургой записывает

в файле случайная инфа с винта - он просто как то область резервирует, и что было на винте записано так тама и есть. на 62 мб файле попробовал таже фигня получаеца. ну тут ничего не поделаешь, так скорее всего компилятор ДМ файлы создает.
ниче не понял из того, что написано. в файле билеберда с винта записана, а не нули, можно только в ручную почистить. ну если сама винда так делает, значит тут ниче не поделать.
не знаю че учитывать в начале и конце, нормально ищет и быстро, в принципе можно еще в два раза ускорить если ошибку обойти в компиляторе, дык зачем это надо.
да сдались эти левые библиотеки.
си не си тут роли не играет, зависит от того как компилятор написан, я пять разных компиляторов попробовал везде все по разному. попробуй чтоб быстрее работало сделать. 5 сек гиг нормально я считаю. и 2.5 мб оперативки.
и два гига тут не из за фат32 (фат 4 гига если не больше) - точность переменных с двойной точностью такая.
не знаю че учитывать в начале и конце, нормально ищет и быстро, в принципе можно еще в два раза ускорить если ошибку обойти в компиляторе, дык зачем это надо.
да сдались эти левые библиотеки.
си не си тут роли не играет, зависит от того как компилятор написан, я пять разных компиляторов попробовал везде все по разному. попробуй чтоб быстрее работало сделать. 5 сек гиг нормально я считаю. и 2.5 мб оперативки.
и два гига тут не из за фат32 (фат 4 гига если не больше) - точность переменных с двойной точностью такая.
я новое творение родил. прога устанавливается в папку USD, на рабочем столе создает ярлык, запускаешь ее по ярлыку - она предлагает изменить настройки планировщиков USD и ДМ, меняет, потом предлагает скопировать список ссылок из буфера обмена, копирует, потом предлагает запустить процесс. рядом с ней в папке USD валяется файл со списком ссылок URL.txt, вот она берет по одной ссылке оттуда и пихает в USD, он согласно настройкам планировщика запуливает ссылку в ДМ, когда тот докачивает, запускает прогу она пихает следующуу ссылку в USD, и так пока ссылки не кончаца, по окончании предлагается вернуть настройки планировщиков назад.
Last edited by bomz on 27 Aug 2009, 14:42 Thu, edited 1 time in total.