On Monday, 6 June 2016 at 02:34:07 UTC, Adam D. Ruppe wrote:
On Monday, 6 June 2016 at 02:05:09 UTC, Pie? wrote:
I believe the essentially converted the file into a ubyte or
something and then wrote that out to a temp file and read in
the temp file... this seems a bit of a kludge to me.
They might do that for certain special cases, but
import("file.whatever") just drops the file content in memory
and you can then access it as an array.
Because D allows such an embedding feature, maybe the file
system should allow working with this concept?
Why do you need it through the file system? If you're writing
the code, just use the array in memory. If it is external, see
if the library offers something like that.
DLL and exe are a special case, most things don't need to be
physical files.
Because, as I said, if I'm working with pre-exiting modules that
work with file, I have to provide a file or modify the source.
e.g., how could I do this easily with your read in your png
module? It takes a file..
/// Easily reads a png file into a MemoryImage
MemoryImage readPng(string filename) {
import std.file;
return imageFromPng(readPng(cast(ubyte[]) read(filename)));
recognize the code?
Of course, like I said, it can be modified in this case, but that
means nothing in general.