Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

I can not read character 0A in a bmp file with Compaq Visual Fortran 6.6C

  1. Dec 14, 2012 #1
    I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    Hi,

    How to read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"
    Here's an excerpt from bmp file:
    42 4D 16 02 00 00 00 00 00 00 36 00 00 00 28 00
    00 00 10 00 00 00 0A 00 00 00 01 00 18 00 00 00
    Because the meeting this character appears error: "forrtl: severe (268): end of record during read, unit 1, file 16x10.bmp"

    Thanks
     
  2. jcsd
  3. Dec 14, 2012 #2

    jedishrfu

    Staff: Mentor

    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    it seems you are trying to read a binary file with an ascii read function or you've not opened the file as binary.

    The 0A you mention is a linefeed character, commonly used to terminate lines of text in ascii files and stripped off when you read a line of text.

    BMP files are images files (screen shots...) created on windows machines or by image editors that support that file type.
     
  4. Dec 14, 2012 #3
    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    What fortran interpreter?
     
  5. Dec 14, 2012 #4
    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    Here are some of the source code:

    subroutine read_bmp_header(nfile, file_size, hpix, vpix)

    ! file_size - in bits
    ! hpix - numbers horizontal pixels
    ! vpix - numbers vertical pixels
    ! reading remains the first pixel

    implicit none

    character *54 header
    character *8 fs, hm, vm
    character *4 h

    integer (2) i, j, nfile
    integer (4) file_size, hpix, vpix

    read(nfile, '(a)', advance = 'no') header
    do i = 1, 4
    j = 7 - i
    h(i:i) = header(j:j)
    j = 2 * i
    write(fs(j-1:j), '(z2.2)') ichar(h(i:i))
    j = 23 - i
    h(i:i) = header(j:j)
    j = 2 * i
    write(hm(j-1:j), '(z2.2)') ichar(h(i:i))
    j = 27 - i
    h(i:i) = header(j:j)
    j = 2 * i
    write(vm(j-1:j), '(z2.2)') ichar(h(i:i))
    end do

    read(fs, '(z8)') file_size
    read(hm, '(z8)') hpix
    read(vm, '(z8)') vpix
    return
    end

    Crashes when reading header !
     
  6. Dec 14, 2012 #5

    jedishrfu

    Staff: Mentor

    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    you're reading a binary file with as if it were a text file. You need to modify your read to open the file as binary.

    http://software.intel.com/en-us/forums/topic/273296

    Notice the open statement with the form=binary

    Code (Text):

    open (55,file=xxx,access='DIRECT',form='BINARY',recl=1)
     
     
  7. Dec 14, 2012 #6
    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    Where is your open() statement for nfile? That is what needs changed. You need FORM='BINARY' in the compaq fortran interpreter.
     
  8. Dec 14, 2012 #7
    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    Here is the calling unit:

    implicit none

    integer (4) file_size, hpix, vpix
    integer (2) k, l, m

    character *100 fisi
    character *54 header
    character *1, allocatable :: r(:), g(:), b(:)

    open(1, file = fisi)

    call read_bmp_header(int2(1), file_size, hpix, vpix)
     
  9. Dec 14, 2012 #8
  10. Dec 14, 2012 #9

    Borek

    User Avatar

    Staff: Mentor

    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    FORTRAN is interpreted?
     
  11. Dec 14, 2012 #10

    phinds

    User Avatar
    Gold Member
    2016 Award

    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    Yeah, I had the same question. I think he must be using the word in the English language sense, not the computer science sense.
     
  12. Dec 14, 2012 #11
    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    Using it in the "vmware is melting my brain in another window" sense. Apologies.
     
  13. Dec 15, 2012 #12
    Re: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"

    Thank you very much to jedishrfu and justsomeguy !
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: I can not read character 0A in a bmp file with Compaq Visual Fortran 6.6C
  1. Compaq Visual Fortran (Replies: 1)

  2. Read file in fortran (Replies: 2)

Loading...