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