C/Visual C - leer de un archivo

 
Vista:

leer de un archivo

Publicado por Eleazar (25 intervenciones) el 08/10/2004 22:33:26
hola camaradas! le quiero preguntar como hacer para que un programa me lea de un archivo llamado Datos.dts las variables de nombre (+-10 caract.) y tiempo (integer). Asimismo me gustaría saber que cambios tengo que hacerle a Datos.dts para que me funcione correctamente: sé que debe ir un EOF al final del archivo, pero ¿ debo también poner un EOL al final de cada línea del archivo? o sea, algo como asi:

Datos.dts
nombre1 5 EOL
nombre2 2 EOL
Nombre3 81 EOL
EOF

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:leer de un archivo

Publicado por Nicolas (183 intervenciones) el 09/10/2004 00:55:08
Hola!!!!!!!

Si vos queres levantar datos de archivos, deberias saber de antemano cuanto queres cargar en el buffer. Si no lo sabes porque manejas registros de longitud variable, deberia existir algun tipo de protocolo por el cual guiarte (ejemplo, los datos estan guardados separados por algun caracter de escape y vos lees una linea entera del archivo (fgets()) y parseas el buffer).
Recomiendo q busques estas funciones:
fread()
fwrite()
fopen()
fclose()
fseek()
fgetc()
fgets() // No recomenda o mejor dicho, tener cuidado al usarla

y demas

Salu2!!!!!!!!!
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

RE:leer de un archivo

Publicado por Miguel Espinoza (34 intervenciones) el 13/10/2004 23:19:07
Creo que lo que necesitas es saber un poco sobre el uso de streams.
es una cuestion realmente sencilla. Te muestro el codigo de un metodo que hice.

void Configurador()
{
ifstream Archivo("cone.txt");
if (!Archivo)
{
ofstream Guarde("cone.txt");
Guarde << "881118";
Guarde.close();
}

if (Archivo)
{

char nuevaprueba;
while(!Archivo.eof())
{
Archivo >> tempo;

} //while

/* de Char a Int*/

sensores[Sonido] = (tempo[0] - '0') * 10 + (tempo[1] - '0');
sensores[Ventana] = (tempo[2] - '0');
sensores[Puerta] = (tempo[3] - '0');
sensores[Humo] = (tempo[4] - '0');
sensores[Temperatura] = (tempo[5] - '0');
}
Archivo.close();
}
En este metodo yo necesita leer unos digitos que habia guardado en un archivo .txt, aunque lo unico que importa es que el tipo del archivo sea de texto plano, igual pudo tener cualkier otra extension.
Lo que hace es muy sencillo, crea un stream con nombre de archivo "cone.txt" en caso de que no lo encontrara en el directorio donde se encuentra el programa cuando se corre. Si no existe entonces lo crea y si existe lo lee a un vector de chars que se llama tempo[]. El stream cuando lee desde un archivo lo lee como chars. pero como yo necesitaba esos digitos en modo integer entonces utilice una tecnica muy sencilla basada en la posicion de los numeros en la tabla ASCII.
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

RE:leer de un archivo

Publicado por Miguel Angel (1 intervención) el 03/11/2004 11:19:39
Para las funciones que necesitas ya te lko han dicho
Con respecto a la estructura de datos, te comento que sirven para separarlas tanto el espacio, como el EOL y el tabulado, indistintamente (siempre que estes en modo texto).
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