<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Sep 3, 2016 at 8:20 PM, José Mejuto <span dir="ltr"><<a href="mailto:joshyfun@gmail.com" target="_blank">joshyfun@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">El 04/09/2016 a las 0:23, silvioprog escribió:<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
    ------------------------------<wbr>----------------<br>
    CACHE 1000000 byte sequential reads in 46 ms.<br>
    FILE 1000000 byte sequential reads in 2200 ms.<br>
    ------------------------------<wbr>----------------<br>
<br>
[...]<br>
<br>
Did you get this result from some sample? If so, could you share it?! I<br>
would be glad to test it checking the TBufferedFileStream performance. :-)<br>
<br>
</blockquote>
<br>
Hello,<br>
<br>
Yes, the code is in the test for TBufferedFileStream in the bug ticket<br>
<br>
<a href="http://bugs.freepascal.org/view.php?id=30549" rel="noreferrer" target="_blank">http://bugs.freepascal.org/vie<wbr>w.php?id=30549</a></blockquote><div><br></div><div>Great. I'm going to download it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Delphi TBufferedFileStream should be faster as I think it implementes a dumb buffer, or just better a read ahead buffer, so it works better for sequential read and worst for butterfly reads on same zones.<br>
<br>
For my works I just use my class TCacheStream which applies the same cache code but over any stream already created. I need this as a stream filter because I'm working on virtual file systems which access a stream (whichever class) as a blocks device stream, so I can in example work with ZIP files as they was a disk with functions to browse the ZIP entries, create files, delete, read and write, once each "file" is closed and the stream that holds the whole file is freed in destroy it updates the zip according, compressing new and modified streams and copying/moving the blocks not touched.<br>
<br>
Part of this code is in the Excel reader/writer in fpspreadsheet package.<br>
<br>
Most of this classes are mostly beta versions, operative in my environment but not valid for wide use, that's the reason I had not published them (and the lack of comments, and code convolution).<br>
<br>
Currently I have, more or less:<br>
<br>
Native filesystem: Read/Write. Maps the native filesystem to my virtual filesystem.<br>
<br>
ZIP filesystem: Read/Write. Up to 2GB zip files.<br>
<br>
FAT16: Read. Typical dd images.<br>
<br>
FAT32: Read. Typical dd images.<br>
<br>
Microsoft Binary Compound: Read/Write with limitations. Used in XLS, DOC,...<br>
<br>
Sample filesystem: Read/Write. Very limited sample filesystem.<br>
<br>
MBR Partition: Read. Used to access dd images when partition information is available.<br>
<br>
RAR: Browse only. With special crafted dll for windows also decompress, but it is a dirty hack.<br>
<br>
ISO: Read only. Limited and based in GPL code.<br>
<br>
The virtual file system allows to mount an filesystem (above) in a folder for browsing, open, and so on, so in example you open a ZIP and inside you find another zip, you can mount the inner stream in a folder and access to inner files transparently to your code, with a path like </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
F:=VirtualLayerRoot.CreateStre<wbr>am("/zip1/zip2/myfile.txt",fmO<wbr>penRead);</blockquote><div> </div><div>If I understood right, did you create something like GIO or GVFS? Or neither of them hehe</div><div><br></div><div>Another question, does it work remotely too?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I can publish the code but I can not provide any guarantee of correct work and that it will not delete all your hard disk :)</blockquote></div><div class="gmail_extra"><br></div>Lol! :-D </div><div class="gmail_extra"><br>-- <br><div><div dir="ltr"><div>Silvio Clécio</div></div></div>
</div></div>