return file from memory
Charma
Motoko_Kusanagi at web.de
Fri May 25 04:00:07 PDT 2007
Bill Baxter Wrote:
> Charma wrote:
> > Once again i have a problem abusing this forum for help, sorry.
>
> You might consider posting these questions to digitalmars.d.learn
> instead. Then no one would have a reason to complain.
>
> > I am looking for a way to return a part of a File in a function without writing it to hdd but sending the part itself as a File.
> > Maybe someone has an idea how to do that?
> >
> > File myfunction(...requestedPart...)
> > {
> > File bigfile = new File(bigfilename, FileMode.In);
> > ...
> > bigfile.read(request, requested part);
> > ...
> > return request;
> > }
> >
> > Now i want this "request" not to be a string with the content but a File-Type itself without saving it to hdd. I want it to be saved in memory only but be able to handle same like File-type. Anything like that possible?
> > Maybe i need to make my own class from File or something?!?
> > Thanks for any help!
>
> Probably you want to look at std.stream.MemoryStream.
>
> --bb
Thanks, i have tryed MemoryStream now but it looks like read(), readLine() and so on don't work anymore..
MemoryStream loadFile(char[] fname)
{
BufferedFile load = new BufferedFile(fname, FileMode.In);
...
...seek(..)
ubyte[] buff;
buff.length = sizeOfRequestedFile;
...
load.read(buff);
writefln(buff); // <-- up to here it seems to work perfectly
...
MemoryStream Request = new MemoryStream;
Request.reserve(sizeOfRequestedFile);
Request.write(buff); // here i write it into the MemoryStream
return Request;
}
this is where i use it:
MemoryStream xy = bla.loadFile("text3.txt");
char[] asd;
while(!xy.eof())
{
xy.readLine(asd);
writefln("xy: ", asd);
}
i get no output for some reason... the MemoryStream seems to be empty still... but no compiler-errors... What did i do wrong?
More information about the Digitalmars-d
mailing list