Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

FSEEK & Carriage Return:

ea0337
Beginner
531 Views
Hi,

I am trying to use FTELL, FSEEK to re-open an input file and re-position the file pointer to the last read position. However, I found that I have to append a carriage return to the end of the file for it to work properly (FILE2.DAT).

Can someone clarify.

Here is my code:

PROGRAM TEST_FSEEK
USE IFPORT
IMPLICIT NONE
INTEGER, PARAMETER :: RECLEN = 40
CHARACTER (LEN=RECLEN) :: RECORD1 = " "
INTEGER :: FTELL_VAL=0, I, IOS, FLAG, LINE
CHARACTER (LEN=100) :: FILENAME
READ(*,*)FLAG
IF (FLAG==1) THEN
FILENAME='FILE1.DAT'
LINE=1
ELSE IF(FLAG==2) THEN
FILENAME='FILE2.DAT'
LINE=1
ENDIF
OPEN(UNIT=1234, FILE=TRIM(FILENAME), STATUS='OLD')
FTELL_VAL=FTELL(1234)
READ(1234,'(A)')RECORD1
FTELL_VAL=FTELL(1234)
CLOSE(1234)
RECORD1 = " "
OPEN(UNIT=1234, FILE=TRIM(FILENAME), STATUS='OLD')
DO WHILE (.NOT. EOF(1234))
IOS=FSEEK(1234,FTELL_VAL,0)
READ(1234,'(A)')RECORD1
FTELL_VAL=FTELL(1234)
END DO
CLOSE(1234)
END PROGRAM TEST_FSEEK

Regards,

ea0337.
0 Kudos
0 Replies
Reply