7-Zip Proc Funktioniert nicht

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

7-Zip Proc Funktioniert nicht

Beitrag von al90 »

Hallo Leute,

Hab mal was älteres "ausgegraben" und wollte es wieder zum laufen bringen. Aber irgendwie geht es nicht.
Es scheitert beim Öffnen des Archives schon. Die Dll selbst kann noch geöffnet werden. Hat vielleicht iregendjemand
eine Idee woran es liegen könnte. Ich bin zugegebener maßen nicht so der Experte auf dem Gebiet von Dll's und so weiter.
Hier mal der Code:

Code: Alles auswählen

; Prototypen.

Prototype SevenZipOpenArchive(Arg1.i, Arg2$, Arg3.i)
Prototype SevenZipFindFirst(Arg1.i, Arg2$, Arg3.i)
Prototype SevenZipFindNext(Arg1.i, Arg2.i)
Prototype SevenZipCloseArchive(Arg1.i)
Prototype SevenZip(Arg1.i, Arg2$, Arg3$, Arg4.i)
Prototype SevenZipGetAttribute(Arg1.i)
Prototype SevenZipGetVersion()
Prototype SevenZipGetSubVersion()

Structure SEVENZIPINFO
  dwOriginalSize.i
  dwCompressedSize.i
  dwCRC.i
  uFlag.i
  uOSType.i
  wRatio.w
  wDate.w
  wTime.w
  szFileName.c[#MAX_PATH+1]
  dummy1.c[3]
  szAttribute.c[8]
  szMode.c[8]
EndStructure

SEVENINFO.SEVENZIPINFO
Dll$="c:\FastBackup\7-zip_DLL\7-zip64.dll"
ZipFile$="c:\Downloads\disk-activity-indicator.zip"

If OpenLibrary(0, Dll$)
  SevenZipOpenArchive.SevenZipOpenArchive = GetFunction(0, "SevenZipOpenArchive")
  SevenZipFindFirst.SevenZipFindFirst = GetFunction(0, "SevenZipFindFirst")
  SevenZipFindNext.SevenZipFindNext = GetFunction(0, "SevenZipFindNext")
  SevenZipCloseArchive.SevenZipCloseArchive = GetFunction(0, "SevenZipCloseArchive")
  HARC.i = SevenZipOpenArchive(0, ZipFile$, 0)
  If HARC
    state = SevenZipFindFirst(HARC, "", @SEVENINFO)
    While state = 0
      a$=PeekS(@SEVENINFO\szFileName)

Debug a$

      size=SEVENINFO\dwOriginalSize & $FFFFFFFF
      state = SevenZipFindNext(HARC, @SEVENINFO)
    Wend
    SevenZipCloseArchive(HARC)
  EndIf
  CloseLibrary(0)
EndIf
Und hier mal der Download-Link zur DLL:
http://ayakawa.o.oo7.jp/soft/ntutil.html#7z

Ist zwar eine Japanische seite, aber der Link ist deutlich zu erkennen.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: 7-Zip Proc Funktioniert nicht

Beitrag von ccode_new »

Try this:

Code: Alles auswählen

; Prototypen.

Structure tagINDIVIDUALINFO
    dwOriginalSize.l
    dwCompressedSize.l
    dwCRC.l
    uFlag.l
    uOSType.l
    wRatio.i
    wDate.i
    wTime.i
    *szFilename
    *dummy1
    *szAttribute
    *szMode
  EndStructure

Prototype SevenZipOpenArchive(Arg1.l, Arg2.p-utf8, Arg3.l)
Prototype SevenZipFindFirst(Arg1.l, Arg2.p-utf8, *Arg3.tagINDIVIDUALINFO)
Prototype SevenZipFindNext(Arg1.l, *Arg2.tagINDIVIDUALINFO)
Prototype SevenZipCloseArchive(Arg1.l)
Prototype SevenZip(Arg1.l, Arg2.p-utf8, Arg3.p-utf8, Arg4.l)
Prototype SevenZipGetAttribute(Arg1.l)
Prototype SevenZipGetVersion()
Prototype SevenZipGetSubVersion()

Structure SEVENZIPINFO
  dwOriginalSize.i
  dwCompressedSize.i
  dwCRC.i
  uFlag.i
  uOSType.i
  wRatio.w
  wDate.w
  wTime.w
  szFileName.c[#MAX_PATH+1]
  dummy1.c[3]
  szAttribute.c[8]
  szMode.c[8]
EndStructure

SEVENINFO.SEVENZIPINFO
Dll$="7-zip64.dll"
ZipFile$="test.zip"

If OpenLibrary(0, Dll$)
  SevenZipOpenArchive.SevenZipOpenArchive = GetFunction(0, "SevenZipOpenArchive")
  SevenZipFindFirst.SevenZipFindFirst = GetFunction(0, "SevenZipFindFirst")
  SevenZipFindNext.SevenZipFindNext = GetFunction(0, "SevenZipFindNext")
  SevenZipCloseArchive.SevenZipCloseArchive = GetFunction(0, "SevenZipCloseArchive")
  HARC.i = SevenZipOpenArchive(0, ZipFile$,0)
  If HARC
    state = SevenZipFindFirst(HARC, "", @SEVENINFO)
    While state = 0
      a$=PeekS(@SEVENINFO\szFileName, -1, #PB_UTF8)

      Debug a$

      size=SEVENINFO\dwOriginalSize & $FFFFFFFF
      state = SevenZipFindNext(HARC, @SEVENINFO)
    Wend
    SevenZipCloseArchive(HARC)
  EndIf
  CloseLibrary(0)
EndIf
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: 7-Zip Proc Funktioniert nicht

Beitrag von al90 »

@ccode_new

Ja das klappt Super. :allright:
Dankeschön! :wink:
Antworten