Fortran Reading MS Excel Files in FORTRAN 77

AI Thread Summary
The discussion revolves around reading CSV and tab-delimited files in FORTRAN 77 and 90-95. A member initially seeks assistance with reading a specific file format, providing sample code that encounters an "End of file" error during execution. Other participants suggest checking the file content for extra characters or missing newlines, which could cause the error. One user successfully runs a modified version of the code with a different file, indicating that the issue may stem from file formatting or naming conventions. The conversation highlights the importance of ensuring that the file is saved in a compatible format, such as UTF-8 without a .txt extension, and suggests using native text editors in Linux for better compatibility. Additionally, a new user inquires about adapting the previous code for a different file format and creating a 20x20 array, seeking further guidance on the code's applicability for their needs.
ekinakoglu
Messages
1
Reaction score
0
Dear Members,

How can I read an MS Excel created csv or tab delimited file in FORTRAN 77? The two tab delimited and csv files are attached.

Thank you,

Ekin
 

Attachments

Technology news on Phys.org
Rename the file to Gucu.txt and try the following code:
Code:
      INTEGER NLINES, NVALUES
      PARAMETER(NLINES=7,NVALUES=5)
      REAL*8 VAL(NLINES,NVALUES)
      OPEN(1,FILE='GUCU.TXT')
      DO 5 I=1,NLINES
    5 READ(1,*)(VAL(I,J),J=1,NVALUES)
      DO 15 I=1,NLINES
   15 WRITE(6,'(5F10.3)')(VAL(I,J),J=1,NVALUES)
      STOP
      END
 
Hello, I am also trying to read from a csv or txt file in Fortran and
I have tried the commands that "mathmate" provided for the Gucu.txt
(using "ekinakoglu" 's file).
but i got this error :
> At line 10 of file readexcel.f90
> Fortran runtime error: End of file

line 10 is: 5 READ(1,*)(VAL(I,J),J=1,NVALUES)

can anyone help me on this?

thank you in advance

Ign
 
I just tested again the execution of the above program and everything works fine.
You may want to verify the content of the given text tile gucu.txt, shown below:
Code:
0.1414607   2.1 12  0.9 0.175
1.607   10  39.2    0   0.255102
35  32  137 0.03990063  0.2335766
8.806   325 -999    0.8399166   -999
-999    -999    -999    0.9591094   -999
Sometimes there are extra characters introduced when you download a file, or a newline missing. You can compare the contents. If all else fails, add a blank line after the last, and delete it. This will ensure you have a newline of your system.
Again, if it does not work, try printing what you read.
 
hello, thank you for the reply

i still get the same error
>At line 7 of file readexcel.f90
>Fortran runtime error: End of file

by the zay the data you pasted was missing two lines I believe

anyway the file I want the fortran program to read looks like this:
[stationID and feature]

A2332110 PLUVI
A2352020 PLUVI
A3301010 NIVAL
A3422010 PLUVI
A3792010 TRANS
A3832010 PLUVI

I have tried to modify the commands you provided for the old file
to work with this new one but I get an error back ! thank you in advance

program readfile
INTEGER NLINES, NVALUES
PARAMETER(NLINES=6,NVALUES=2)
CHARACTER*8 VAL(NLINES,NVALUES)
OPEN(1,FILE='stationvsregimeetiage04june09.TXT')
DO 5 I=1,NLINES
5 READ(1,*)(VAL(I,J),J=1,NVALUES) ! Line 8
DO 15 I=1,NLINES
15 WRITE(6,*)(VAL(I,J),J=1,NVALUES)
STOP
END

At line 8 of file readfile.f90
Fortran runtime error: End of file
 
I picked up your data and ran the following program. The results print correctly.
Code:
      INTEGER NLINES, NVALUES
      PARAMETER(NLINES=6,NVALUES=2)
      CHARACTER*8 VAL(NLINES,NVALUES)
      OPEN(1,FILE='CSV.DAT')
      DO 5 I=1,NLINES
    5 READ(1,*)(VAL(I,J),J=1,NVALUES)
      DO 15 I=1,NLINES
   15 WRITE(6,'(5A10)')(VAL(I,J),J=1,NVALUES)
      STOP
      END
Results:
Code:
 A2332110  PLUVI
 A2352020  PLUVI
 A3301010  NIVAL
 A3422010  PLUVI
 A3792010  TRANS
 A3832010  PLUVI

Perhaps you could shorten the file name to 8 characters and see if it helps.
 
Last edited:
it eventually worked, thank you

I simply saved the same file as text UTF-8 with no .txt extension and it worked great
I don't know if it's related to the compiler (gfortran) or the system (linux ubuntu), no idea

ig
 
It may be that gfortran defaults to utf-8 which is not compatible with the native code for ubuntu. You may want to do some tests with text files created in ubuntu using native editors such as EMACS or vi.

But I'm glad it all works out.
 
Hi!

I am trying to open the attached xls or txt file with fortran 90-95.
Firstly, is the data in the correct position?
Is the previous code applicable to read and process my data?
My pusrpose is to create an array 20*20 with total 400 numbers in each cell.
For any other suggestion of other codes I will be really grateful.

Thanks for the attention.
 
  • #10
The files are here..
 

Attachments

Similar threads

Replies
8
Views
1K
Replies
2
Views
3K
Replies
2
Views
1K
Replies
22
Views
4K
Replies
14
Views
6K
Replies
5
Views
5K
Replies
12
Views
3K
Back
Top