Dev - C++ - ficheros en dev C con clases

   
Vista:

ficheros en dev C con clases

Publicado por Javier  (1 intervención) el 21/11/2009 05:27:47
hola a todos tengo el siguiente problema estoy trabajando con ficheros en C implementandolos en clases, el problema esta que este no me crea el archivo en la carpeta que deseo, pero compíla correctamente, tengo que completarlo con las funciones de adicionar y eliminar el fichero creado pero sin que se me cree este me es imposible continuar con el resto del algoritmo. agradezco su colaboracion.

# include <conio.h>
# include <iostream>
# include <stdlib.h>
# include <stdio.h>

using namespace std;

class Conexion
{
private:
FILE *fp;
char ruta[20];
public:
Conexion(FILE *xfp, char xruta[]);
FILE *getConexion();
char* getRuta();
};

class Operaciones
{
private:
Conexion *conex;
int adicionar (char datos[]);
int eliminar (char datos[]);
char* leer();
void conectar ();
public:
int tipo (int xtip, char datos[]);
int crear(char datos[]);
};

Conexion::Conexion(FILE *xfp, char xruta[])
{
fp=xfp;
strcpy(ruta,xruta);
}

FILE *Conexion::getConexion()
{
return fp;
}

char* Conexion::getRuta()
{
return ruta;
}

void Operaciones::conectar()
{
FILE *fp1;
conex=new Conexion(fp1,"C:\\Archivo\\info.dat");
}

int Operaciones::crear (char datos[])
{
FILE *fp2;
conectar();
fp2=conex->getConexion();
fp2=fopen(conex->getRuta(),"W");
if(!fp2)
return 0;
fputs(datos, fp2);
fclose(fp2);
return 1;
}
main()
{
int res;
Operaciones *op=new Operaciones;
res=op->crear("Pruebas");
if(!res)
cout<<"Hubo error";
getch();
}

hasta aqui compíla correctamente pero en la carpeta C:\\Archivo\\info.dat no me crea el archivo info.dat.

en que parte puedo tener el error.

les agradezco su colaboracion.
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:ficheros en dev C con clases

Publicado por Juan GS (1 intervención) el 09/01/2010 15:33:07
Hola:
Ante todo quisiera decirte ya que estas utilizando clases que utilices la libreria #include<fstream.h>, en internet puedes encontrar bastantes cosas sonbre ficheros en C++ ya que es mucho mas comodo que el trabajo con ficheros en C.

Con respecto a lo que preguntas hace relativamente poco tiempo hice un programa parecido.
1- Si la direccion en la que tu quieres crear el fichero esta dentro de otra carpeta en el directorio en le que se encuentra el ejecutable, con ficheros en C++(aunque con ficheros en C no lo he probado supongo que tambien funcione) puedes hacer algo esto.

ofstream out;
out.open("\carpeta1\carpeta2\carpeta_n\nombreFichero.ext", ios::app);

De esta forma creas en la ruta especificada un fichero de texto para escritura al final del mismo, tambien lo puedes abrir en modo binario haciendo lo siguiente"ios::app | ios::binary".

2 - Si la carpeta en la que en la que quieres crear o abrir el fichero esta en otro directorio fuera del que se encuentra el ejecutable, tienes que cargar el direcorio completo, por ejmplo.

ofstream out("C:/carpeta1/carpeta_n/ficher.ext", ios::app);

Con esto creas unfichero para escritura en caso de que este no exista de lo contrario lo habre para escritura al final del mismo.

Espero haber podido ayudarte con mis modestos conocimientos.
Y recuerda que "Quien no vive para serbir, no sirbe para vivir" y ten siempre presente que "DIOS NOS AMA"
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