comp.lang.ada
 help / color / mirror / Atom feed
From: Andre <avsaway@hotmail.com>
Subject: Re: Efficiently setting up large quantities of constant data
Date: Thu, 16 Dec 2004 18:11:16 +0100
Date: 2004-12-16T18:11:16+01:00	[thread overview]
Message-ID: <cpsfjh$fg3$1@news4.zwoll1.ov.home.nl> (raw)
In-Reply-To: <pan.2004.12.16.12.37.55.221490@linuxchip.demon.co.uk.uk.uk>

Dr. Adrian Wrigley wrote:
> A similar question I have is how to link in regular files and access
> their contents in Ada.
> 
> For example, suppose I have a binary file "distances.dat" containing
> the (road) distances between 1000 different cities.  This could be a 2MB
> file computed by another application. How can I build a single executable
> file containing the data and access it from the Ada code?
> 
> I presume this needs to be done at the linker stage, but I don't
> see any options to link in non-object files.  The obvious alternative
> of distributing the data files separately and reading them in
> is slower and much less tidy than having a single self-contained binary.
> 
> (I tried Google, but probably didn't use the right search terms...)

If you are writting for the Windows platform you have two options:

1. Put it in a resource file and use a resource compiler to add it to 
your executable. With WIN32 the functions Find_Resource and 
Lock_Resource you can get a pointer to the data.

2. Use a memory mapped file. This way you also get a pointer to the data 
and Windows is taking care of loading it into the memory. Data reading 
using a memory mapped file is just as fast as putting it in the executable.

Andr�


  parent reply	other threads:[~2004-12-16 17:11 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-13 21:48 Efficiently setting up large quantities of constant data Michael Mounteney
2004-12-13 22:09 ` Stephen Leake
2004-12-13 22:15 ` Luke A. Guest
2004-12-14  0:20 ` Jeffrey Carter
2004-12-14  8:43 ` Martin Krischik
2004-12-14 12:18 ` Simon Wright
2004-12-15 21:10   ` Brian May
2004-12-16 23:18     ` Nick Roberts
2004-12-16 12:36 ` Dr. Adrian Wrigley
2004-12-16 13:50   ` Marc A. Criley
2004-12-17  2:32     ` John B. Matthews
2004-12-16 14:06   ` rien
2004-12-16 14:24   ` Vinzent 'Gadget' Hoefler
2004-12-16 18:12     ` Dr. Adrian Wrigley
2004-12-16 23:25       ` Nick Roberts
2004-12-17  5:20     ` tmoran
2004-12-17  8:38       ` Vinzent 'Gadget' Hoefler
2004-12-17 13:53     ` Dr. Adrian Wrigley
2004-12-17 14:16       ` Alex R. Mosteo
2004-12-16 17:11   ` Andre [this message]
2004-12-16 21:52     ` Larry Kilgallen
2004-12-16 23:23       ` Nick Roberts
2004-12-16 23:47       ` Dr. Adrian Wrigley
2004-12-19 14:34         ` Simon Wright
2004-12-16 18:29 ` Alex R. Mosteo
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox