Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como guardar archivo

Estas en el tema de Como guardar archivo en el foro de C/C++ en Foros del Web. Buenas, mi problema es el siguiente: Pretendo hacer un programa que me guarde un fichero de texto, que previamente ha sido modificado, en una url ...
  #1 (permalink)  
Antiguo 07/05/2010, 13:00
 
Fecha de Ingreso: abril-2010
Mensajes: 10
Antigüedad: 14 años
Puntos: 1
Como guardar archivo

Buenas, mi problema es el siguiente:
Pretendo hacer un programa que me guarde un fichero de texto, que previamente ha sido modificado, en una url elegida por el usuario.

Se me ha ocurrido utilizar la función savefiledialog para mostrar el cuadro de diálogo y obtener el path donde el usuario quiere guardar. Entonces creo ahí un archivo de texto vacío, copio el contenido del archivo modificado en éste vacío y luego elimino el primer archivo. No obstante, el problema está en que la función fopen para abrir el archivo vacio recien creado no reconoce el parámetro que le paso como dirección. Lo depura bien, pero al correrlo me da error. Podría tener algo que ver con la conversión que hago con la url de String^ a char*?

A continuación os expongo parte del código:

char* procedencia="C:\\prueba 2.txt";

bool ok;

SaveFileDialog^guardar=gcnew SaveFileDialog();
guardar->Filter="TextFiles|*.txt";
guardar->ShowDialog();

if(guardar->FileName != "")
{

System::IO::FileStream ^ fs = safe_cast<System::IO::FileStream^>(guardar->OpenFile());
String^DireccionGuardar=guardar->FileName;

//Para pasar de String^ a char*
int len=((DireccionGuardar->Length+1) * 2);
char *pasar = new char[ len ];
pin_ptr<const wchar_t> wch = PtrToStringChars(DireccionGuardar);
ok= wcstombs( pasar, wch, len );



//Copio un archivo en otro
char letra;
FILE *origen;
FILE *destino;

origen = fopen(procedencia,"r");
destino = fopen(pasar,"w");<-AQUI ESTÁ EL ERROR

letra=fgetc(origen);
while (letra!=EOF)
{
fputc(letra,destino);
letra=fgetc(origen);
}
fclose (origen);
fclose (destino);
}

Gracias por las respuestas

Última edición por osaeroon; 08/05/2010 a las 05:28
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:18.