My bad it works I had a bug in my file names Format('%.5.png', [ref]) ** d** is missing the good one Format('%.5d.png', [ref])
My bad it works I had a bug in my file names
Hello I have a list of TBitmap in memory and I want to zip them in a zip file on my disk. To do so I have proceeded like if I had to zip a list of files but I used AddFromStream methode procedure bmps2Zip(chem: string; iz: integer; lst: TList); var Zipper: TAbZipper; ref: integer; MS: TMemoryStream; bmp: TBitmap; begin try Zipper := TAbZipper.Create(nil); Zipper.FileName := chem + Format('Z_%d.zip', [iz]); Zipper.CompressionMethodToUse := TAbZipSupportedMethod.smBestMethod; Zipper.StoreOptions :=...
Thank you. Your help is much appreciated. :)
The Abbrevia 3.04 documentation is available as PDF and HLP files here: https://sourceforge.net/projects/tpabbrevia/files/Documentation/3.04/ When TurboPower open sourced the library they didn't include whatever files they were originally using to generate the help, so it's never been updated. If you stick to the high-level components (e.g., TAbZipKit, TAbZipBrowser, etc), there haven't been many significant changes to the API since then, aside from changing various declarations from "string" to...
Hi there, I am a seasoned C++ programmer. Can anyone tell me how to obtain docos for the Abbrevia compression software ? On the official site, there aren't any links. Thank you, Colin
to Lazarus. Can you please tell me how to make support for Cyrillic (Russian letters) in file names?
to Lazarus. Can you please tell me how to make support for Cyrillic (Russian letters) in file names?
procedure TForm1.Button2Click(Sender: TObject); begin AbZipper1 := TAbZipper.Create(nil); try AbZipper1.FileName := 'paths.zip'; AbZipper1.ForceType := True; AbZipper1.StoreOptions := [soStripDrive, soRemoveDots, soReplace, soRecurse]; AbZipper1.BaseDirectory := 'D:\delphi'; AbZipper1.AddFiles('.', faAnyFile - faSysFile - faHidden); AbZipper1.Save; finally AbZipper1.Free; end; end;
Lazarus. I'm trying this code: procedure TForm1.Button2Click(Sender: TObject); begin AbZipper1.BaseDirectory := Edit1.Text; AbZipper1.FileName := IncludeTrailingPathDelimiter(Edit1.Text) + 'archive.zip'; AbZipper1.AddFiles('.;.*', faDirectory); AbZipper1.StoreOptions := [soRecurse, soStripDrive]; // archiving options AbZipper1.Save; AbZipper1.CloseArchive; end; Archives, but does not archive subdirectories with files? How to do?
Lazarus. I'm trying this code: procedure TForm1.Button2Click(Sender: TObject); begin AbZipper1.BaseDirectory := Edit1.Text; AbZipper1.FileName := IncludeTrailingPathDelimiter(Edit1.Text) + 'archive.zip'; AbZipper1.AddFiles('.;.*', faDirectory); AbZipper1.StoreOptions := [soRecurse, soStripDrive]; // archiving options AbZipper1.Save; AbZipper1.CloseArchive; end; Archives, but does not archive subdirectories with files? How to do?
When using a password encrypted zip file and try to extract a text file to a stream I'm getting an exception, password is correct. Am I doing anything wrong? function TForm1.GetTextFileFromZIP(Filename: String): TStringlist; var AStream: TMemoryStream; AList: TStringlist; begin AStream := TMemoryStream.Create; AList := TStringList.Create; try try AbUnZipper.ExtractToStream(FileName, AStream); AStream.Position := 0; AList.LoadFromStream(AStream); Result := AList; except on e: Exception do ShowMessage('Exception...
Good afternoon to all, there is a way to full abort the (de)compression process? If i click to the "abort" button and set to true Aborted variable, in the ArchiveSaveProgress event the Abort variable is for each file. So when Abort is true only that file is aborted .... my need is to stop (abort) all and exit from save proceudre. It is possible? Thank's for reply Daniele
I installed the latest version of Abbrevia but I didn't find any example of buying to create a compressed file or how to unzip using LZMA. It would have an example for me. Grateful.
Was this problem fixed? I'm having a very similar issue, with the same EAbPartSizedInflate exception returning to me when I try to decompress a .gz file.
Hi, I have a compresses stream generated by a another application that uses Abbrevia and I have to decompress it using a C# application. The stream doesn't have any header and every c# library say that the stream is not recognized. What can I do? Is there a compiled utility tu use as external application? Regards G.
Unfortunately, Abbrevia doesn't support encrypting file names because the zip format originally didn't. When they added encryption support to the zip file format it was only defined for the file data, not the file names, and could actually vary from file to file. Newer versions of the spec do include extensions to encrypt the file names too, but it's not well supported (even WinZip only does the file data). You'll need to either encrypt the file as a separate pass with another library or switch to...
Can anyone tell me the simplest way to implement a password on the AbZipKit? I just want to have a password on any given zip file so it won't open easily outside of my application. In the application I want to ask for the password and then open the archive in my app. It doesn't have to be super secure, just enough to keep casual users out. I can put a password in the AbZipKit properties or set it in code but the AbZipKit archive file always opens and never asks anything (I have a simple ShowMessage...
Hi Jay, The version of Abbrevia included in GetIt is based on the fork here: https://github.com/TurboPack/Abbrevia/commits/master I've never been involved with it, so I'm afraid I can't provide support for whatever changes they've introduced. Looking through their repository history, I do see changes related to removing "AnsiString" usage in 2014 that touched the "Password" property and that may have broken things. The current release of Abbrevia here was designed to be forwards compatible with later...
Hello Craig, It's been 8 years since we last communicated. I hope this is the place to continue with the same topic. I got the code working back in 2011 with Delphi 2009 and whatever the Abbrevia version was at that time. I'm now working with Delphi 10.2 Tokyo and using the Abbrevia that came with Delphi 10.2's GetIt Catalog Repository. It shows the version as "Abbrevia-10.3". Similar issues regarding zipping/encrypting a TMemoryStream and then decrypting/inflating are back, and I've put in a good...
Hello Craig, It's been 8 years since we last communicated. I hope this is the place to continue with the same topic. I got the code working back in 2011 with Delphi 2009 and whatever the Abbrevia version was at that time. I'm now working with Delphi 10.2 Tokyo and using the Abbrevia that came with Delphi 10.2's GetIt Catalog Repository. It shows the version as "Abbrevia-10.3". Similar issues regarding zipping/encrypting a TMemoryStream and then decrypting/inflating are back, and I've put in a good...
Hello Craig, It's been 8 years since we last communicated. I hope this is the place to continue with the same topic. I got the code working back in 2011 with Delphi 2009 and whatever the Abbrevia version was at that time. I'm now working with Delphi 10.2 Tokyo and using the Abbrevia that came with Delphi 10.2's GetIt Catalog Repository. It shows the version as "Abbrevia-10.3". Similar issues regarding zipping/encrypting a TMemoryStream and then decrypting/inflating are back, and I've put in a good...
Hello Craig, It's been over 7 years since we last communicated. I hope this is the place to continue with the same topic. I got the code working back in 2011 with Delphi 2009 and whatever the Abbrevia version was at that time. I'm now working with Delphi 10.2 Tokyo and using the Abbrevia that came with Delphi 10.2's GetIt Catalog Repository. It shows the version as "Abbrevia-10.3". Similar issues regarding zipping/encrypting a TMemoryStream and then decrypting/inflating are back, and I've put in...
Hello Craig, It's been over 7 years since we last communicated. I hope this is the place to continue with the same topic. I got the code working back in 2011 with Delphi 2009 and whatever the Abbrevia version was at that time. I'm now working with Delphi 10.2 Tokyo and using the Abbrevia that came with Delphi 10.2's GetIt Catalog Repository. It shows the version as "Abbrevia-10.3". Similar issues regarding zipping/encrypting a TMemoryStream and then decrypting/inflating are back, and I've put in...
Hello Craig, It's been over 7 years since we last communicated. I hope this is the place to continue with the same topic. I got the code working back in 2011 with Delphi 2009 and whatever the Abbrevia version was at that time. I'm now working with Delphi 10.2 Tokyo and using the Abbrevia that came with Delphi 10.2's GetIt Catalog Repository. It shows the version as "Abbrevia-10.3". Similar issues regarding zipping/encrypting a TMemoryStream and then decrypting/inflating are back, and I've put in...
...repeated Load/Modify/Save/Close isn't something I've tested heavily. Neither have I. For now, I've modified that routine to only save/close/load when the threshhold is near. We will see if this stops this behavior at the customer's site. I did not see any Extended characters in the filenames. I think my best option is to refactor the code and stop the continual close/open routine. If this continues, I'll be back. Thanks for your feedback. I really appreciate your time. Best
That should work, though repeated Load/Modify/Save/Close isn't something I've tested heavily. You might try freeing the zipper and re-creating it rather than just reloading it to see if there's something being cached. If it's specific customers that are reliably seeing it (on the same files?) my guess would be something about the filenames. Extended (non-ASCII) Unicode characters, perhaps? It's been quite a while since I've worked on Abbrevia, so I can't offer much more than that. If you can get...
or updating an existing one? It started as new, but I repeatedly save it to get the file size. Past results during add would not give file size on Win7 machines unless saved (that behavior hasn't been tested lately). Also saving across network can give odd results with the file save/size routines. Here is the loop: repeat if ((sr.Attr and faDirectory) = faDirectory) then Continue else begin if (CompareText(ExtractFileExt(sr.Name),sDotPDF) = 0) or (CompareText(ExtractFileExt(sr.Name),sDotCSV) = 0)...
No. Are you adding files to a new zip or updating an existing one? The crash seems to indicate that the contents of an existing zip are corrupt in a way that affects saving but not loading the directory listing. The files you're adding probably isn't a factor unless there's something unusual about them (size, filename, is a symlink, etc).
because the header before the compressed file stream is corrupt Thanks Zoë. So you are saying that I'm adding a corrupted file, and the header of that corrupted file is what is invalid and can't be read during that save, correct?
Zip files include metadata about the contained files in multiple spots: (1) Immediately before the compressed file's stream, and (2) as part of a directory listing at the end of the file. When you load the archive Abbrevia can read just the directory listing at the end and see all of the files in it, and if you try to access a specific file it can jump straight to that file's header and compression stream without looking at anything else in the file. The error your seeing is occurring because the...
One of our customers is receiving this error after adding multiple files during the SAVE routine. Regretfully I do not have exact line numbers… working on that. Delphi XE4 ~~~ |7FFFFFFE|03 |00000000|0608B533|Abbrevia180.bpl |0001B533|Abziptyp |TAbZipLocalFileHeader |LoadFromStream | | |00000008|03 |0019E748|0608D865|Abbrevia180.bpl |0001D865|Abziptyp |TAbZipArchive | (possible SaveArchive+673) | | |00000008|03 |0019E798|06082812|Abbrevia180.bpl |00012812|Abarctyp |TAbArchive |Save | | |00000008|03...
The version of Abbrevia included with recent versions of Delphi is from the fork at https://github.com/TurboPack/Abbrevia Back when it split off the changelog mentioned fixing some sort of issue with C++Builder, but they wouldn't tell me what changed, and I haven't looked into more recent releases, so you'll have to ask there for assistance.
The version of Abbrevia included with recent versions of Delphi is from the fork at https://github.com/TurboPack/Abbrevia Back when it split off the changelog mentioned fixing some sort of issue with C++Builder, but wouldn't tell me what changed, and I haven't looked into more recent releases, so you'll have to ask there for assistance.
Converting program from XE2 to 10.2 C++ Builder. Old program used manually installed Abbrevia. Abbrevia 10.3 came with Studio 10.2 and I installed it using defaults. I want to use TCabKit and TMakeCab. Components are in palette.. Placed on a VCL form in a package, not main program. Compiles; functions find the methods they want by pointeers to the compoents. Linker says 'Fatal: Cannpt find AbBase.obj' There IS no such file in the installation. How do I fix this, please.
I have updates to make an easy enhancement. You can do it with a couple simple edits to AbArcTyp.pas Find and update the line; TAbExtractOption = (eoCreateDirs, eoRestorePath); to TAbExtractOption = (eoCreateDirs, eoRestorePath,eoAlwaysOverwrite,eoOverwriteExceptNewer); Find procedure TAbArchive.DoConfirmProcessItem and replace it with update. { -------------------------------------------------------------------------- } procedure TAbArchive.DoConfirmProcessItem(Item : TAbArchiveItem; const ProcessType...
You can do it with a couple simple edits to AbArcTyp.pas Find and update the line; TAbExtractOption = (eoCreateDirs, eoRestorePath); to TAbExtractOption = (eoCreateDirs, eoRestorePath,eoAlwaysOverwrite,eoOverwriteExceptNewer); Find procedure TAbArchive.DoConfirmProcessItem and replace it with update. { -------------------------------------------------------------------------- } procedure TAbArchive.DoConfirmProcessItem(Item : TAbArchiveItem; const ProcessType : TAbProcessType; var Confirm : Boolean);...
You can do it with a couple simple edits to AbArcTyp.pas Find and update the line; TAbExtractOption = (eoCreateDirs, eoRestorePath); to TAbExtractOption = (eoCreateDirs, eoRestorePath,eoAlwaysOverwrite,eoOverwriteExceptNewer); Find procedure TAbArchive.DoConfirmProcessItem and replace it with update. *{ -------------------------------------------------------------------------- } procedure TAbArchive.DoConfirmProcessItem(Item : TAbArchiveItem; const ProcessType : TAbProcessType; var Confirm : Boolean);...
Hello: Can anybody help for Abbrevia for C++Builder XE6? Thanks, Sud
I'm not really working on Abbrevia anymore, so aside from unofficial forks like Roman Kassebaum's Get It version, there isn't any active development going on. As a feature request, even if I was more active, it would be hard to justify this change since it would break compatibility for a ton of the API and make it more difficult to use for plain TStreams. If you can use IStream instead, it probably wouldn't be difficult to write a wrapper that converts from it into a TStream, like TStreamAdapter...
Hello. Is it possible to support ISequentialStream instead of TStream for zipping? TAbCustomZipper.AddFromStream(const NewName : string; FromStream : ISequentialStream); Thank you. JAM Software GmbH Managing Director: Joachim Marder Am Wissenschaftspark 26 * 54296 Trier * Germany Phone: +49 (0)651-145 653 -0 * Fax: +49 (0)651-145 653 -29 Commercial register number HRB 4920 (AG Wittlich) http://www.jam-software.com JAM Software GmbH Gesch?ftsf?hrer: Joachim Marder Am Wissenschaftspark 26 * 54296 Trier...
Abbrevia in Lazarus: Last file don't decompress
Sorry, it was a file with length=0! Please, cancel this bug report!
Abbrevia in Lazarus: Last file don't decompress
Thanks for the quick reply, Zoe. I'll check out the link you provided.
I am not actively maintaining Abbrevia right now, and there's no one else left on...
Any news on when Abbrevia will work with Delphi Berlin 10.1? Thank you.
Dear Abbrevia team! Another small bug is that an attempt to UNZIP archive with files...
Another small bug is that an attempt to UNZIP archive with files (with hidden attribute),...
Another small bug is that an attempt to UNZIP archive with files (with hidden attribute),...
Another small bug is that an attempt to UNZIP archive with files (with hidden attribute),...
Another small bug is that an attempt to UNZIP archive with files (with hidden attribute),...
Packing(zip) files with unicode filenames (Windows)
The details are covered in PKWARE's APPNOTE.TXT, section 6.0 "Traditional PKWARE...
I need to understand this information too Please,
I just realized that this one is a duplicate of: https://sourceforge.net/p/tpabbrevia/bugs/164/...
I just realized that this one is a duplicate of: https://sourceforge.net/p/tpabbrevia/bugs/164/...
TAbZipper will produce an invalid zip archive on 3GB file
TAbZipper.OnArchiveItemProgress reports progress above 100% when zipping large files
Will be fixed in new commit.
Fixed in new commit.
Zip files made by my attached test application result in files that WinZip is not...
Zip files made by my attached test application result in files that WinZip is not...
I've been using Abbrevia latest (and now also an older, tried & trusted) version...
Ok. Thanks!
BestMethod compresses the file using DEFLATE, then stores the file either that way...
Does this option activate LZMA compression? If it doesn't then how to force LZMA...
Loop over TAbUnZipper's Items[] and check the IsEncrypted property. Each file in...
My application is designed to accept only encrypted archives with specific password....
My application is designed to accept only encrypted archives with specific password....
My application is designed to accept only encrypted archives with specific password....
My application is designed to accept only encrypted archives with specific password....
My application is designed to accept only encrypted archives with specific password....
My application is designed to accept only encrypted archives with specific password....
Thank very much for your help!
impossible to cancel archive save with OnArchiveSaveProgress event
Add AbArcTyp and AbUtils to your uses clause.
When I try to compile this code http://paste.ofcode.org/MKSS2eWcEhqWtBBgufLgWf my...
Abbrevia version 5.2 rev 539
FileNotFound Exception
Hi, i'm using TAbZipper to compress some files, i have tested with db and text files...
Hi, i'm using TAbZipper to compress some files, i have tested with db and text files...
Hello, I have problem, i'm migrating one Application that used VCLZip to Abbrevia....
Sorry bug was on my side, don't know how to delete whole topic.
Hello, I have problem, i'm migrating one Application that used VCLZip to Abbrevia....
Hello, I have problem, i'm migrating one Application that used VCLZip to Abbrevia....
Download errors with no files found. From: MikeTheCat [mailto:mikethecat@users.sf.net]...
When there is a file or dir with long name (>100) in TAR file, it is not extracted...
Wow, worked like a charm, you're the guy craig, thanks for help me again.
Update to the code in Subversion. I just checked in a fix so the components will...
Fixed issue with AbDfHufD debug logging on Unic...
Merged AbDetermineArcType changes from Double C...
Hi, may i check with abbrevia if a file is Gzipped? I have a .zip file that i have...
Worked fine, thanks dude :)
Update to the latest version of the code from Subversion. I just checked in a fix...
Gzip archives will now generate a filename base...
Hi Craig, thanks for reply. by the way, i've changed the archiveType as you suggested,...
Hi Craig, thanks for reply. by the way, i've changed the archiveType as you suggested,...
That file isn't a zip file, it's gzipped. Change the ForceType property to atGzip...