Add files to a ZIP archive? - delphi

What component or method can be used to specify a list of filenames and then zip them into a single archive?
I dont need advanced features or anything really, but if I could add some filenames to a stringlist for example then put those files into a ZIP that would be good.
Ive tried searching a few components but not sure which ones to use.
Thanks

In addition to VCLZip that Chris mentioned, Abbrevia (one of the old TurboPower packages) is available for free at SourceForge. If you need Delphi 2010/XE versions, you can find those available at SongBeamer (if the changes haven't been incorporated into the SF tree yet). As I was well educated about in the comments to my answer, the D2010/XE changes (as well as many bugfixes and new features) have been added to the project at SF, so the SongBeamer version is no longer needed.

VCLZip is good, fairly popular. http://vclzip.bizland.com/ IIRC, it has good documentation and examples that will get you off to a quick start.

I have used sometimes ZipMaster, and it works well.
Regards.

Related

Where can I find the current ProvidedTypes.fs API?

The last Type Provider I wrote just after F# 3.0 was released, and I used the ProvidedTypes.fs(i) files that came with the sample pack.
These files are quite old by now, and I wondered if there are more recent versions.
By googling alone I came up with six different versions. Where can I find the current, official version of ProvidedTypes.fs and ProvidedTypes.fsi?
Moreover, I heard that generated types are now easier to implement. Is this funtionality already inside newer versions of those files?
As requested by Nikon, here is the comment promoted to an answer :)
The starter pack is maintained at https://github.com/fsprojects/FSharp.TypeProviders.StarterPack

First steps to reconstruct the architecture in a Delphi 7 project

I am working with an undocumented, 100.000 lines Delphi 7 project and one of my goals is to create a software architecture document from the source code.
Can you give me any ideas on how to approach this?
These tools work with Delphi 7 and are of great help:
the UML tool ModelMaker
the refacotoring tool ModelMaker Code Explorer
the documentation tool Documentation Insight (as of august 2012)
UML diagrams are a great way to get an overview of structure. How well that overview is, depends on how well the structure is.
For taking over projects like these, I start with some basic documentation (often in MarkDown format, as that text based format is version control friendly, and generates nice HTML).
To get that going, it helps if the original developers or/and some base documentation are still there.
Then just start to:
fix bugs / apply feature requests
use ModelMaker to get a feel for overall structure
use ModelMaker Code Explorer as a refactoring tool
use Documentation Insight to document inside the source code (you can generate help files and web pages with the pro version, see feature matrix)
update my Markdown documents with any information that does not fit in the source code documentation well
Note you can put some documentation in using Model Maker Code Explorer, but it can not be exported as help files, since it uses a different documentation format than Documentation Insight.
So I agree with the comment by Jan Doggen (thanks Jan!): just start. Make sure you have the right tools to help that going.
Try running the source code through a newer Delphi version that supports UML modeling, then let it show you how different sections of code related to each other.
Understand will do the job. Free download includes 15 days evaluation which will be more then enough for what you need to document.

Find differences in a .po file

I have a .po file where most translated strings are identical to original ones. However, few are different. How do I quickly find the ones that differ from original?
use podiff
I used it, an it workd for me. Its in C, so you have to compile it. make is your friend
I would suggest using one of the many web-based localization management platforms. To name a few:
Amanuens (disclaimer: my company builds this product)
Web Translate It
Transifex
GetLocalization
This kind of platforms allows you to keep your resource files in sync, edit them in a web-based editor (useful for no-technical translators) and most importantly to highlight/see only the changed/untranslated strings.

Is there documentation for turbopower's OnGuard anywhere?

Er...is there documentation for turbopower's OnGuard anywhere?
Finally got the source code to turn itself into components on the pallete (D2009) and can run the examples but I don't know what most of the components do or which I need.
There used to be documentation when it was a commercial product. Does it still exist?
Howard
Ah, I'd been looking for two days and eventually found the documentation five minutes after posting this message. To save anyone else the trouble they are here
http://sourceforge.net/projects/tponguard/files/tponguard_docs/1.13/
The documentation is still available on SourceForge, along with the source code.
Update: Most of the TurboPower components are being maintained as part of TurboPack, a collection of open source tools being kept up to date by Roman Kassebaum. The most recent versions of the source code and documentation for OnGuard are on GitHub.
For two examples on how to use the OnGuard library look at this question.
The two approaches there are roughly equivalent, Runner's answer creates the OnGuard components at runtime, while my answer uses the procedural OnGuard API and has slightly less overhead as a result.
There is a third approach of dropping the components on a form directly rather than creating them at runtime. There's nothing particularly wrong with doing this, I've just found it unnecessary and not really saving anything more than a line or two of code.

Is the dif or patch adder for Delphi IDE, ie if someone makes patch and I want to add it to my project automatically?

Is there DIFF plugin availaple for Delphi? I need simple add diff or patch file to my project, replaceing the porject code, that was changed in the patch, but keeping also the old one incase of falling back to old file without the patch.
If you use a version control system to check the files into, you can use the version control tools to maintain the ability to store differences and merge. SVN along with TortoiseSVN seems to be a very popular (and open source) method of doing just this. There are plenty of examples of integration into the IDE.
The history tab in the IDE works well too, if you are the only one working on the file. If this is the case I would set the history rather high, and use the GExperts project backup wizard to make "checkpoint" backups.
A fantastic windows based diff/merge utility that I strongly recommend is Beyond Compare, which also happens to be written in Delphi. :)
Winmerge
It's an excellent differencing tool for source files without needing Delphi.
Bri
Use a version control system, like mercurial.
I think the OP is asking something like the diff/patch utils from GNUWin tools.
You get a patch file and apply it to the code base.

Resources