|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#31
|
|||
|
|||
Пришел к выводу, что ассемблерный код не читабелен и ужасен - надо искать альтернативу...
Код:
DD $F983460E,$C12B7310,$828D02E9,$FFFFF7FF,$C933C12B,$C1460E8A,$C12B02E1,$8840088A,$88A420A,$420A8840 Все смелые до begin... Последний раз редактировалось DrGeorg, 26.04.2013 в 21:03. |
#32
|
||||
|
||||
это не ассемблерный код.
А на кой тебе его читать? — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#33
|
|||
|
|||
Цитата:
Код:
asm DB $51 DD $458B5653,$C558B08,$F08BD003,$33FC5589,$144D8BD2,$68A1189,$3C10558B,$331C7611,$83C88AC9 DD $8346EFC1,$820F04F9,$1C9,$8846068A,$75494202,$3366EBF7,$460E8AC9,$F10F983,$8D83,$75C98500,$8107EB18 DD $FFC1,$3E804600,$33F47400,$83068AC0,$C8030FC0,$83068B46,$28904C6,$4904C283,$F9832F74,$8B217204,$83028906 DD $C68304C2,$4E98304,$7304F983,$76C985EE,$46068A14,$49420288,$9EBF775,$8846068A,$75494202,$8AC933F7 DD $F983460E,$C12B7310,$828D02E9,$FFFFF7FF,$C933C12B,$C1460E8A,$C12B02E1,$8840088A,$88A420A,$420A8840 DD $288008A,$113E942,$F9830000,$8B207240,$FF428DD9,$8302EBC1,$C32B07E3,$1E8ADB33,$3E3C146,$2B05E9C1 DD $D9E949C3,$83000000,$2F7220F9,$851FE183,$EB1875C9,$FFC18107,$46000000,$74003E80,$8AC033F4,$1FC08306 DD $F46C803,$FBC11EB7,$FF428D02,$C683C32B,$8369EB02,$457210F9,$D98BC28B,$C108E383,$C32B0BE3,$8507E183 DD $EB1875C9,$FFC18107,$46000000,$74003E80,$8ADB33F4,$7C3831E,$F46CB03,$FBC11EB7,$83C32B02,$D03B02C6 DD $9A840F,$2D0000,$EB000040,$2E9C11F,$2BFF428D,$8AC933C1,$E1C1460E,$8AC12B02,$A884008,$88008A42 DD $51EB4202,$7206F983,$2BDA8B37,$4FB83D8,$188B2E7C,$8904C083,$4C2831A,$8B02E983,$831A8918,$C08304C2 DD $4E98304,$7304F983,$76C985EE,$40188A20,$49421A88,$15EBF775,$8840188A,$188A421A,$421A8840,$8840188A DD $7549421A,$8AC933F7,$E183FE4E,$FC98503,$FFFE4284,$46068AFF,$49420288,$C933F775,$E9460E8A,$FFFFFECA DD $8B10552B,$10891445,$75FC753B,$EBC03304,$FFF8B80D,$753BFFFF,$830372FC,$5B5E04C0,$90C35D59 end; 2. Читаю не я, а компилятор и процессор. Все смелые до begin... |
#34
|
||||
|
||||
Это уже скомпилированный кусок кода. Просто если на асме его вставить, там портянка не на одну страницу выйдет, просто так короче и это работает.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#35
|
||||
|
||||
Интересное представление об ассемблере... Можно было и загуглить.
Это называется машинный код. Ассемблер - язык. А машинный код - набор байт. В ассемблере можно через директиву db/dd вписывать непосредственно байты, в данном случае машинный код. jmp $ ; Happy End! The Cake Is A Lie. |
#36
|
|||
|
|||
Благодарю за разъяснение, но все работает, только на больших файлах при распаковке иногда выдает ошибку - Access violation at address...
Код:
ms2.Size := lzodecompress(Byte(ms.Memory^), Byte(ms2.Memory^)); Цитата:
Хорошо бы узнать какой? Цитата:
Вернее при компрессии функция его обрезает! Я так понял надо кусками файл загружать, только как реализовать? Все смелые до begin... Последний раз редактировалось M.A.D.M.A.N., 27.04.2013 в 12:35. |
#37
|
||||
|
||||
Оффтоп: Стесняюсь спросить , а вообще для чего нужно сжатие файлов, для экономии места или по криптографическим соображениям? Ведь с обычным файлом работать намного быстрее, чем с архивом. Непонятки.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#38
|
|||
|
|||
Сов. верно - для экономии места если не сжать - выходной файл в 600Mb весить будет, а так на половину меньше! (Вернее, приблизительно на 43%).
Потом у меня такая позиция - загружаю архив в память, там его разжимаю, и вывожу от туда в текст на экран... Все смелые до begin... Последний раз редактировалось DrGeorg, 27.04.2013 в 12:09. |
#39
|
||||
|
||||
Цитата:
Что-то здесь в организации работы не так - походу надо или разбить контент на несколько частей, на группы, или может базой данных воспользоваться, машинку жалко, столько инфы переваривать каждый раз при запуске, жалко. Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#40
|
|||
|
|||
Я наверное не правильно объяснил: 600Mb занимает не один файл - их 10!!! И загружать надо не все подряд файлы, а какой нибудь один!
Дэ факто: 50Mb на файл - сёравно ощутимо!.. Вопрос в другом - как подгружать файл в память частями для распаковки этих частей по отдельности, короче как заставить перелопатить большой файл через эту функцию: Код:
var ms, ms2: TMemoryStream; zs: TCompressionStream; begin ms := TMemoryStream.Create; ms2 := TMemoryStream.Create; // zs := TCompressionStream.Create(ms2, zcMax); try ms.LoadFromFile('C:\qqq.lzo'); // zs.CopyFrom(ms, ms.Size); ms2.Size := 1024*1024*10; ms2.Size := lzodecompress(Byte(ms.Memory^), Byte(ms2.Memory^)); RichEdit1.LinesLoadFromStream(ms2); finally ms2.Free; ms.Free; end; Все смелые до begin... Последний раз редактировалось DrGeorg, 27.04.2013 в 12:37. |
#41
|
||||
|
||||
Дак во моем примере я 10 мегабайт памяти выделял под распакованные данные, (1024*1024*10), у тебя объем больше, вот и вылазить AV.
Чето совсем как-то печально у тебя с программированием. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#42
|
|||
|
|||
Цитата:
Цитата:
Все смелые до begin... Последний раз редактировалось DrGeorg, 27.04.2013 в 12:47. |
#43
|
||||
|
||||
Да, ошибся.
Для таких тяжелых случаев есть два раздела: "код на шару" и "работа". Тем более у нас правило: один вопрос - одна тема. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#44
|
|||
|
|||
Цитата:
Прям уж таки и тяжелый? Да у меня пробел по выделению блоков памяти... Ok - разобрался, помогло - 1024*1024*1024 Все смелые до begin... Последний раз редактировалось M.A.D.M.A.N., 27.04.2013 в 13:14. |
#45
|
||||
|
||||
Гиг памяти, не многовато?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |