[Delphi/DLL]LZMA compressie.

Pagina: 1
Acties:

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 10:51
Ik zoek iets om in Delphi 7.0 LZMA compressie te gebruiken.
Er is wel wat informatie te vinden, maar de compressie is vrij complex.
Ik heb de broncode van 7zip geprobeerd te ontleden, maar ik krijg hem niet eens gecompileerd.
Bij het volgen van de functie-aanroepen raak ik ook de weg kwijt om dat het aardig complex is.


Na 2 avonden klooien ben ik verder gaan zoeken naar andere manieren om in Delphi LZMA te gebruiken.
Ik kwam uiteindelijk op 7-zip32.dll uit. Een groot nadeel is dat er alleen een Japanse handleiding erbij zit. De Altavista translator krijgt het ook niet voor elkaar om deze handleiding te vertalen naar het Engels. :+.

Het gaat mij enkel om een grote hoeveelheid data met LZMA te verkleinen. (Het is niet de bedoeling om 7zip bestanden te maken of uit te lezen.)

Speel ook Balls Connect en Repeat


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Even googlen brengt het volgende:
* LZMA SDK inclusief voorbeelden in het engels: http://www.7-zip.org/sdk.html
* De pascal port van de bovenstaande: http://www.birtles.org.uk/programming/
* Een open source programma gemaakt in Delphi dat LZMA compressie gebruikt: http://www.jrsoftware.org/isinfo.php

Daar moet je vast wel mee verder komen

We adore chaos because we like to restore order - M.C. Escher


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 10:51
Met Google was ik ook op jou links gekomen. Echter de eerste link (http://www.7-zip.org/sdk.html) is niet voor Delphi. Onderaan die site staat de link naar je 2e link (http://www.birtles.org.uk/programming/).
Deze is niet te compileren doordat in de .dpr-file het commando $mode staat. Als ik deze weghaal krijg ik een DOS-venster te zien waarna hij een .inf bestand niet kan vinden. Deze wordt ook niet op de site aangeboden.

De Inno setup (link 3) kreeg ik ook niet voor elkaar om dat te compileren. (In de source wordt trouwens Delphi 7.0 afgeraden om te gebruiken.) Handmatig stap voor stap de functies te volgen lukt me ook niet vanwege de complexiteit.

Speel ook Balls Connect en Repeat


Verwijderd

Ook onbekend schreef op donderdag 29 maart 2007 @ 22:11:
Deze is niet te compileren doordat in de .dpr-file het commando $mode staat. Als ik deze weghaal krijg ik een DOS-venster te zien waarna hij een .inf bestand niet kan vinden. Deze wordt ook niet op de site aangeboden.
In 't LMZAAlone project staat onder Run -> Parameters... bij Parameters:
e "c:\desktop\badlzma\dgaport.inf" "c:\desktop\test.lz"

Haal je die weg, of vervang je ze door een bestand dat wel op jouw schijf te vinden is, dan werkt 't prima.
{$MODE delphi} is overigens een directive van FreePascal, een ondertussen vrij volwassen open source Pascal compiler die grotendeels Delphi 5 compatible is. (Ik heb er ooit 's aan meegewerkt door de IniFiles.pas unit te schrijven)

[ Voor 4% gewijzigd door Verwijderd op 30-03-2007 00:54 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Met alle drie de links moet het mogelijk zijn om te doen wat je wilt. Sorry dat er niet een 100% kant en klare oplossing voor je is, maar zo werkt het niet altijd in het leven. Als je nog een gerichte vraag hebt kunnen we die beantwoorden.

[ Voor 9% gewijzigd door LordLarry op 30-03-2007 08:39 ]

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Delphi TSevenZipVCL

En btw, http://www.torry.net is je vriend voor delphi als je bepaalde standaard zaken zoekt.

[ Voor 96% gewijzigd door Verwijderd op 30-03-2007 09:19 ]


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 10:51
Het is eindelijk gelukt. :D (Van deze link dus: http://www.birtles.org.uk/programming/)
Ik deed meerdere dingen in Delphi fout. Dus als ik een fout opgelost dacht te hebben zorgde een andere fout er wel voor dat het programma weer niet draaide....

Maar goed. De compressie en decompressie werkt goed, en voor de toepassing waarin ik het wil gaan gebruiken ben ik zeer tevreden met het resultaat.


@LordLarry en anderen:
Ik haal wel eens meer voorbeeldjes op van internet welke niet willen werken omdat ik bepaalde componenten niet heb geïnstalleerd. Ik dacht dus zelf dat de oorzaak van die LZMA een ontbrekend component of library was.

Mijn dank is groot.

Speel ook Balls Connect en Repeat


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Goed om te horen dat het met wat doorzettingsvermogen toch is gelukt :)

We adore chaos because we like to restore order - M.C. Escher

Pagina: 1