Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 150
  • Last Modified:

Version numbers

Has anyone found any code that puts version numbers on any file, and not just the *.exe (Delphi code if possible).
Is there any where on a text file or any file that I can store a 16 bit number.
0
abuela
Asked:
abuela
  • 3
  • 3
  • 2
  • +3
1 Solution
 
LischkeCommented:
Hi abuela,

I think you are asking too much. Where will you store version information, say, for a text file? There is no room planned to keep version information in other then exe, dll, vxd etc. files. So you have no other choice than to live with that...

Ciao, Mike
0
 
abuelaAuthor Commented:
Edited text of question.
0
 
florisbCommented:
hmmm, saving projects in a structure like:

dev/projectX/version0.1
dev/projectX/version0.2
dev/projectX/version0.3
with the latest version in
dev/projectX/

works good.


What do you want to accomplish?

Floris.

0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
LischkeCommented:
If you don't want to have the 16bit number appearing in any text editor than you cannot assign such a number to a text file. Floris' suggestion is ok, as well as using the file data stamp.

Ciao, Mike
0
 
ITugayCommented:
At first look it impossible, but you may try to store it just after the end of the  file.  You must be careful, recreating file you mark by this way will clear you version label.

Cheers,
Igor.
0
 
florisbCommented:
There is a tool you can use to change the properties of all files in a directory, with this you can easily set all descriptions in one directory. I have it at home.

Floris.
0
 
runebjCommented:
You could also do what we did in the old (DOS) days and put the version number in the "time" field for the file... all Version 1.0 files "created" at 1:00PM,  Version 1.5 at 1:50PM etc. (just don't make a version 1.7)

runebj
0
 
brunoheCommented:
I think there's a possibility on the NTFS-level to save save a file-specific stream on the disk. Don't aks me how it works or about a source snippet.... (see NT Internals)
0
 
abuelaAuthor Commented:
Do you know how to append version info to the end of the file.
0
 
ITugayCommented:
OK, I show you sample, just a moment....


0
 
ITugayCommented:
Hi,
The code is bellow:

const VersionPrefix = $1234DC1A;  // some unical value, used as version prefix

// result is cureent version if present, or -1 if no version label
function GetFileVersion(aFileName : string) : integer;
var F : TFileStream;
    U,V : integer;
begin
  result:=-1;
  F:=TFileStream.Create(aFileName,fmOpenRead);
  F.Seek(-SizeOf(Integer)*2,2);
  F.Read(U,SizeOf(Integer));
  if U = VersionPrefix // have a version prefix?
     then F.Read(result,SizeOf(Integer));
  F.Free;
end;

// set version to file, true if success
function SetFileVersion(aFileName : string; aVersion : integer) : boolean;
var F   : TFileStream;
    U,V : integer;
begin
   result:=false;
   V:=GetFileVersion(aFileName); // have a version?
   if V = aVersion then result:=true else
   try // set version if file have no version or have different from aVersion
     F:=TFileStream.Create(aFileName,fmOpenWrite);
     if V >= 0
        then F.Seek(-SizeOf(Integer)*2,2)
        else F.Seek(0,2);
     U:=VersionPrefix;
     F.Write(U,SizeOf(Integer));
     F.Write(aVersion,SizeOf(Integer));
     F.Free;
     result:=true;
   except end;
end;

//---------------------------------
Best regrads,
Igor.

PS: it will add some extra characters in text files.
0
 
abuelaAuthor Commented:
Thanks for the code.
0

Featured Post

[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

  • 3
  • 3
  • 2
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now