Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Cómo Extraer Datos De Un *.txt

Iniciado por J_F_NASH, 08 de Julio de 2005, 02:31:19 PM

« anterior - próximo »

J_F_NASH

 Estoy con C++
Trato de leer los datos de un archivo txt.
Este contiene:
#define VARIABLE_A 50
#define VARIABLE_B 30

Estoy probando con:
_open("fichero", flag);

Pero no hay manera. Simplemente encuentra el fichero pero es como si no leyese lo que hay dentro.



S2.

CoLSoN2

 Utiliza la clase ifstream de la librería estándar.

Ejemplo:

// reading a text file
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

int main () {
 char buffer[256];
 ifstream examplefile ("example.txt");
 if (! examplefile.is_open())
 { cout << "Error opening file"; exit (1); }

 while (! examplefile.eof() )
 {
   examplefile.getline (buffer,100);
   cout << buffer << endl;
 }
 return 0;
}
 
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

sés

Soy indeciso... ¿o no?

CoLSoN2

 Que estamos en el siglo XXI, por el amor de un dios..

Además, a todos los anticuados de por aquí os digo, que en el VS2005 todas estas mariconadas de manejo de ficheros de stdio.h (como fopen) y de cadenas de string.h (como strcpy) están marcadas como deprecated (soltando un bonito warning 4101).
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

senior wapo

 Unas narices!  antes me caso que dejar el fopen XDD


PD: realmente me da igual, es solo costumbre. Por cierto, ¿ no era mas lento iostream que fopen&cia ? habia unos benchmarks creo...

CoLSoN2

 Pues ve pidiendo hora que con tanta cola de gays dentro de poco casarse va a ser casi imposible.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

_Grey

 A mi tambien me cuesta dejar el fopen() y toda la parafernaria de C, printf() y demas...

Pero si empieza a darle a esto mejor que le coja el tranqui a la libreria estandar de C++, aunque sea solo para que coja costumbre, que despues no hay quien lo deje.

Saludos.

sés

Cita de: "CoLSoN2"Además, a todos los anticuados de por aquí os digo, que en el VS2005 todas estas mariconadas de manejo de ficheros de stdio.h (como fopen) y de cadenas de string.h (como strcpy) están marcadas como deprecated (soltando un bonito warning 4101).
Personalmente me la trae al fresco que M$ quiera olvidar esas funciones que fincionan perfectamente y forman parte del estándar (palabra que M$ desconoce).
Soy indeciso... ¿o no?

CoLSoN2

 
Cita de: "sés"Personalmente me la trae al fresco que M$ quiera olvidar esas funciones que fincionan perfectamente y forman parte del estándar (palabra que M$ desconoce).
Por lo que parece..
CitarOpen a file. These functions are deprecated because more secure versions are available; see fopen_s, _wfopen_s.

Ahí tienes el porqué, pero vamos, en cuanto a ceñirse al estandar, el 2005 es el que mejor compatibilidad tiene de todos los compiladores de MS (otra cosa es que suelte warnings).
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

J_F_NASH

 Ok gracias.

"Además, a todos los anticuados de por aquí os digo, que en el VS2005 todas estas mariconadas de manejo de ficheros de stdio.h (como fopen) y de cadenas de string.h (como strcpy) están marcadas como deprecated (soltando un bonito warning 4101)."

1) ¿Cómo me entero que librerias son antiguas y cuales actuales?
If (C == antiguo && C++ == actualizado){
  cout << "¿Donde hay una referencia de esta librería?"
}

3) ¿VS2005 no es el VS.NET, es recomendable para un novato?



S2.

CoLSoN2

 El IDE del VC 2005 (que sería el Visual C 8) es casi el mismo que el .NET (que sería 7 o 7.1, depende de la versión) y muy parecido al del 6, así que no creo que tengas problemas. Lo único es que quizás al principio hagas cosas que el 6 te deja porque se pasa el estandar por los cojones, y te preguntes por qué da un error. Además la implementación de Microsoft de la STL del 2005 (y del 7.1) es infinitamente mejor que la del 6, que es una basura.

"1) ¿Cómo me entero que librerias son antiguas y cuales actuales?"

Cuando uses algo que MS marca como "deprecated", ya te soltará un warning.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

J_F_NASH

 He estado probando lo de ifstream.
No se si me he explicado bien. Lo que quiero hacer es lo siguiente:

1) Tengo mi archivo archivo.cpp.
2) En el hago referencia a una constante (PEPE)
3) Que he metido en archivo.txt:
#define PEPE 5

Cuando compilo, evidentemente no encuentra PEPE.

No se, igual tendría que calentarme los cascos un poco mas con ifstream.
¿O hay otro camino mas simple aun?


S2


AgeR

 El mejor consejo que puedo darte es que o bien te compres un libro y te empapes bien, o te apuntes a algunas clases presenciales, que al menos te darán unas bases de programación.

No te lo tomes a mal, pero viendo la mayoría de tus posts, me dá la impresión de que te falta una base solida.  ;)  

vicho

 por eso mismo ese warning es ignorado en mis proyectos xDDD

Pogacha

 Suena como que quieres poner un #include
Pon en el archivo cpp #include "archivo.txt" y hará que cuando compile lea el archivo como si estuviese insertado en ese lugar.

un #define define una constante en tiempo de compilación, los archivos se abren con open en tiempo de ejecución.

No parece que sepas la diferencia entre tiempo de ejecución o tiempo de compilación.

Saludos.

PD: Post cruzado con CoLSoN2






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.