thanks a lot Bulat ! i ve seen the lib use System.Stream which i don't know... the fact you can discribe a layout then read a file according to the layout is just a feature i thought about. i'll definitely learn your library.
minh thu 2006/4/6, Bulat Ziganshin <[EMAIL PROTECTED]>: > Hello minh, > > Thursday, April 6, 2006, 12:41:32 PM, you wrote: > > > the code you give in the mail is +/- what i thought about ... is-it > > the fastest way ? > > if you will say about your task and speed requirements, i will say how > you can do it. the fastest way is to use asm :) > > > thank you also for your lib, i will read it later in the day. > > > when i said "would have to be the same" in previous mail, it's because > > i like to see haskell as a really high-level abstraction where you > > just say what you want, but not in which way to do it. in the examples > > (mines or yours), the programmer has a lot of choices ... > > it was on advertising :) in Real World (tm) the things are more > complex ;) on the other side, you can write something like this > (using my library): > > data TiffHeader = Tiff { id : Word8, > height : Word16, > width : Word16, > .... > } > > main = do h <- openBinaryFD "filename" ReadMode > header <- get h > print (height header, width header) > > and got what you want. here, all fields will be read as big-endian, to > read them as little-endian you should use: > > main = do h <- openBinaryFD "filename" ReadMode >>= openByteAlignedLE > > > > another problem is that you have to allocate a buffer before reading > > the file, but (i m not a os expert) i think there is already some kind > > of plumbing (maybe another buffer) to read file. so maybe that in all > > cases, we're losing efficiency when reading a file ? > > also, if our buffer allocation is mandatory, the compiler could put > > the right code for us (i.e. choose the best buffer length). > > with my lib, you can either read data directly from file (through > implicit 512-byte buffer) or read whole file into the automatically > allocated buffer with `readFromFile`. what is better - depends on what > you plan to do with rest of file > > >> -- Create new MemBuf filled with data from file > >> h <- readFromFile "test" > > > > -- > Best regards, > Bulat mailto:[EMAIL PROTECTED] > > _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell