Fortran - Fortran runtime error: End of file

 
Vista:

Fortran runtime error: End of file

Publicado por Hector Barreno (2 intervenciones) el 22/01/2018 18:19:23
Hola Buenas, estoy haciendo un programa para calcular una serie de notas a través de lectura de archivos.
Por un lado tengo un archivo csv con todas las soluciones correctas, por otro tengo un archivo txt con las respuestas de cada alumno. El código que yo he puesto me debería calcular solamente la nota del primer alumno, pero me da el error: end of file. Si alguien puede ayudarme a resolverlo se lo agradecería mucho, gracias. PD: el archivo csv tengo que leerlo por filas, mientras que el txt por columnas.

Este es el código que he puesto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Program trabajo
 
implicit none
 
   character( len = 7 ) :: R          !"len" indica el numero de caracteres, es decir el numero de columnas
   character( len = 3 ) :: exp1, exp2
   character( len = 8 ) :: S, DNI
   integer :: udata1, udata2, EoF, N, k
   character( len = 500 ) line
   real :: A, X, Y, Z, expX, expA
 
      open( file = 'solutions.csv', newunit = udata1 )
      open( file = 'p1_T7.txt', newunit = udata2 )
 
      read( unit = udata2, iostat = EoF, fmt = '( A )' ) line    !por cada read que pongas lee una fila
 
      DNI = line( 1 : 8 )
      N = 10
      do k = 1, 10
 
        R = line( 31 + k*10 : 37 + k*10 )                                     !conversion de texto a numeros
        read( R,* ) X
 
        exp2 = line( 38 + k*10 : 40 + k*10 )
        read( exp2,* ) expX
 
        Z = X*( 10**expX )
 
      read( unit = udata1, iostat = EoF, fmt = '( A )' ) line
 
        S = line( 18 : 25 )                         !conversion de caracteres a numeros
        read( S,* ) A
 
        exp1 = line( 27 : 29 )
        read( exp1,* ) expA
 
        Y = ( A*( 10**expA ) )*( 10**5 )
 
      if ( Y == Z ) then
        N = N
      else
        N = N - 1
      end if
 
      end do
 
    write( *,* ) DNI
 
    write( *,* ) N
 
end program
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de heaj

Fortran runtime error: End of file

Publicado por heaj (13 intervenciones) el 11/02/2018 01:20:25
Realmente no entiendo que estás haciendo con tu código. Si pudieras poner algunas líneas del contenido de tus archivos 'solutions.csv' y 'p1_T7.txt' podría ayudarte.
También explica un poco más a detalle que quieres hacer.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar