| 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 |
| 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
|
|
| Dec14-12, 02:50 PM | #10 |
|
|
|
| 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 | ||