Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   mit 7z zips anzeigen (https://www.delphipraxis.net/151937-mit-7z-zips-anzeigen.html)

Alter Mann 7. Jun 2010 11:53

mit 7z zips anzeigen
 
Hallo

ich habe hier die SevenZip-VCL Komponente und möchte den Inhalt von normalen Zip-Archiven
anzeigen (bzw. *.tar, *.bzip). Doch irgendwie verweigert sie den Dienst. Muss bei diesen Archiven
etwas an den Voreinstellungen geändert werden, oder gibt es ein anderen Weg?

Danke

PS Ein Codebeispiel sparr ich mir hier, da ja nur der Dateiname zugewiesen wird.

DenSchub 7. Jun 2010 12:44

AW: mit 7z zips anzeigen
 
Um welche VCL-Komponente geht es? Die TSevenZipVCL tut bei mir einwandfrei. Was heißt
Zitat:

Zitat von Alter Mann
irgendwie verweigert sie den Dienst

?

Eine bestimmte Fehlermeldung?

Alter Mann 7. Jun 2010 13:05

AW: mit 7z zips anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

wie geschrieben:
Delphi-Quellcode:
...
procedure TForm1.aFileOpenExecute(Sender : TObject);
begin
  if OpenDlg.Execute then
  begin
    SevenZip1.SZFileName := OpenDlg.FileName;
    SevenZip1.List;
  end;
end;

...

procedure TForm1.SevenZip1Listfile(Sender: TObject; Filename: WideString;
  Fileindex, FileSizeU, FileSizeP, Fileattr, Filecrc: Int64;
  Filemethod: WideString; FileTime: Double);
var
  LI : TListItem;
begin
 if fileattr = fadirectory then exit;

 LI := lvArchive.Items.Add;
 LI.Caption := extractfilename(filename);
 LI.SubItems.Add(extractfilepath(filename));
 LI.SubItems.Add(inttostr(Fileattr));
 LI.SubItems.Add(inttostr(filesizep));
 LI.SubItems.Add(inttostr(filesizeu));
 LI.SubItems.Add(inttohex(filecrc,8));
 LI.SubItems.Add(filemethod);
 LI.SubItems.Add(Datetimetostr(filetime));
end;
Wähle ich ein SevenZip-Archiv aus, dann wird der Inhalt auch angezeigt.
Bei einem 'normalen' Zip-File jedoch nicht.

Vielleicht kannst du dir die App mal anschauen und mir dann schreiben
was ich falsch mache.

Danke

DenSchub 7. Jun 2010 14:39

AW: mit 7z zips anzeigen
 
Mal abgesehen davon, dass die TSevenZip wohl nicht Unicode-Kompatibel ist (bzw mir mit inkompatiblen Typen-Fehlermeldungen abschmieren), gehe ich davon aus, dass diese Komponente, wie es der Name vermuten lässt, wirklich nur für 7z geeignet ist.
Wenn du mit ZIPs arbeiten willst, schau dir doch mal die DelphiZip-Komponenten an (Im Delphi-Treff gibt es eine nette Einführung dazu)

himitsu 7. Jun 2010 15:04

AW: mit 7z zips anzeigen
 
7zip selber sollte intern mit UTF-8 arbeiten.

Kann aber sein, daß die Headerübersetzungen schlecht sind oder daß die Originalheader schon dahingehend nicht ausgelegt waren.

PChar statt PAnsiChar usw.

DenSchub 7. Jun 2010 15:20

AW: mit 7z zips anzeigen
 
Problemstelle ist folgender Code in der SevenZipVCL.pas (1108):
Delphi-Quellcode:
SearchHandle := FindFirstFile( PAnsiChar( Ansistring( fn ) ), FindDataA );
//kommentar, um inline-code zu deaktivieren :P
Delphi meldet mir:
DCC
[DCC Fehler] SevenZipVCL.pas(1108): E2010 Inkompatible Typen: 'AnsiChar' und 'Char'


Allerdings wird nur LZMA und PPMD unterstützt, womit wir wieder bei Post #4 wären.

Alter Mann 8. Jun 2010 10:12

AW: mit 7z zips anzeigen
 
Hi,

nachdem ich ein wenig gesucht habe ist mir aufgefallen, das in den JEDI's alle notwendigen
Datei vorhanden sind. Damit hat sich alles erledigt.

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz