[ Foro de Pascal ]

archivo de texto vs archivo con tipo???

28-Apr-2011 15:32
oscar gomez
1 Respuestas

Cordial saludo profesor Nacho cabanes,de antemano mil gracias por tu tiempo.
Profesor es que inicie con el tema de ficheros y me surge que no se distinguir la diferencia entre un archivo de texto y otro de tipo, porejemplo:

sea  el archivo

        datos.dat

 pedro     15123456  02  15
 miguel    18987678  02  17
 cristina  19435564  02  12
 julia     17765432  02  17
 carla     19890657  02  15    

en cada linea se esta almacenando un registro correspondiente al nombre ,identificacion, grupo y nota de un conjunto de estudiantes como se observa.

bien yo lo tomaria como una archivo de tipo pero en este otro caso:

Dado un array A de M elementos enteros,donde alguno de ellos se repiten,almacenados en un archivo VectorA.dat, Desarrolle un programa que genere un archivo resultado.dat como un vector B con los elementos de A evitando las repeticiones.

 ejemplo
 
   vectorA.dat                  resultado.dat
       3                          A       B      
      -1                          3       3                  
       2                         -1      -1
       3                          2       2
       3                          3       7
      -1                          3
       7                         -1  
       3                          7
                                  3


Ahi esta mi duda profesor como puedo tratar este archivo como un archivo de texto siendo que su contenido son numeros enteros????


y otra duda que me surge en el tema de archivos: cuando se? que en un enunciado se trata de un archivo secuencial o directo? y en base a ello con que instrucciones o cual es la forma de trabajar con cada uno de estos archivos segun el caso?

gracias por su siempre ayuda.


01-May-2011 11:30
Nacho Cabanes (+83)

La forma "sencilla" de distinguir un fichero de texto de un fichero binario es: si lo puedes abrir con el bloc de notas (o con otro editor básico de textos), sin que aparezcan símbolos extraños, entonces es un fichero de texto.

Así, si abres "vectorA.dat" con el bloc de notas y se ven correctamente esos números 3, -1, 2, etc (ya sea cada uno en una línea, separados por espacios, etc), entonces es un fichero de texto. En ese caso, leerías cada dato del fichero con "readln" (si están cada uno en una línea) o con "read" (si están en la misma línea).

Si el bloc de notas no te muestra nada claro, quizá sea un fichero binario, en el que el primer byte no es el carácter "3" del código ASCII (que se almacena como un número 51, como podrás ver si buscas una tabla ASCII), sino el byte 3, que no se puede mostrar en pantalla. De la misma forma, un "10" se almacenaría como dos bytes si es un fichero de texto (49 y 48) o como un solo byte (10, no imprimible) si es un fichero binario).

Quien te plantea el ejercicio es quien te tiene que dar esos detalles, o bien los puedes intentar descubrir tú, si te dan un fichero de ejemplo.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)