New Reply

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

 
Share Thread Thread Tools
Dec14-12, 12:09 PM   #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
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Bird's playlist could signal mental strengths and weaknesses
>> Minus environment, patterns still emerge: Computational study tracks E. coli cells' regulatory mechanisms
>> Bacterium uses natural 'thermometer' to trigger diarrheal disease, scientists find
Dec14-12, 12:20 PM   #2
 
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.
Dec14-12, 12:21 PM   #3
 
What fortran interpreter?
Dec14-12, 12:45 PM   #4
 

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 !
Dec14-12, 12:54 PM   #5
 
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:
open (55,file=xxx,access='DIRECT',form='BINARY',recl=1)
Dec14-12, 12:57 PM   #6
 
Where is your open() statement for nfile? That is what needs changed. You need FORM='BINARY' in the compaq fortran interpreter.
Dec14-12, 01:16 PM   #7
 
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)
Dec14-12, 01:46 PM   #8
 
You need to pass in UNFORMATTED or BINARY for the open mode as discussed. This should help you: http://jp.xlsoft.com/documents/intel/cvf/cvf_pg.pdf
Dec14-12, 01:50 PM   #9
 
Admin
Quote by justsomeguy View Post
What fortran interpreter?
FORTRAN is interpreted?
Dec14-12, 02:50 PM   #10
 
Recognitions:
Gold Membership Gold Member
Quote by Borek View Post
FORTRAN is interpreted?
Yeah, I had the same question. I think he must be using the word in the English language sense, not the computer science sense.
Dec14-12, 03:15 PM   #11
 
Using it in the "vmware is melting my brain in another window" sense. Apologies.
Dec15-12, 08:48 AM   #12
 
Thank you very much to jedishrfu and justsomeguy !
New Reply
Thread Tools


Similar Threads for: I can not read character "0A" in a bmp file with "Compaq Visual Fortran 6.6C"
Thread Forum Replies
In binary can we have a value with "deci" "centi" "mili" or more lower valued prefix? Computers 14
Could a "Black Hole" be the cycle of "Dark Matter" powered by "Dar Energy:? General Physics 3
Difference between "Identical", "Equal", "Equivalent" Calculus & Beyond Homework 9
Deleting a file that "can not read from the source file or disk" Computers 13