SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Goselito_0 en Sábado 7 de Junio de 2008, 13:23

Título: Variable Como Nombre De Archivo
Publicado por: Goselito_0 en Sábado 7 de Junio de 2008, 13:23
Hola!
¿Como puedo hacer que el nombre de un archivo sea una variable AnsiString?, es decir, introduzco el nombre y le pongo la extension ".csv" para abrirlo con excel. He estado probando varias cosas pero seguro que hay alguna función que se me escapa.

Muchas gracias de antemano.
Título: Re: Variable Como Nombre De Archivo
Publicado por: sonGoku en Lunes 9 de Junio de 2008, 09:29
El tipo AnsiString tiene un metodo que lo convierte a char* que es c_str, no se si eso te valdra.

Ejemplo

AnsiString sNombre = AnsiString("c:\\a.xls");
fopen(sNombre.c_str(),"r")

Espero que te valga
Título: Re: Variable Como Nombre De Archivo
Publicado por: Goselito_0 en Martes 10 de Junio de 2008, 15:35
Si, conocia esa funcion pero no encuentro la manera de hacerla, porque por ejemplo si hago:

identificador= num_ansi.c_str();
fich(identificador.csv, ios::out)

Me dice que el problema esta en que .csv no es una propiedad de identificador.

Y si hago:

fich("identificador.csv", ios::out)

Entonces el archivo se llamara "identificador.csv" y no lo que contiene la variable.
Uffff la verdad es que no le veo la solucion, si alguien la ve... se agradecera muchisimo su ayuda. Un saludo.
Título: Re: Variable Como Nombre De Archivo
Publicado por: sonGoku en Miércoles 11 de Junio de 2008, 11:47
Lo que tienes que hacer es:


AnsiString identificador= num_ansi + AnsiString(".csv");
fich(identificador.c_str(), ios::out);

de todas formas si con esto no te aclaras dime con que instruccion tratas de abrir el fichero si es del compilador(fopen,...) o si es propia tuya dime la sintaxis por lo menos.

Saludos.
Título: Re: Variable Como Nombre De Archivo
Publicado por: Goselito_0 en Jueves 12 de Junio de 2008, 12:19
Con esto último funciona a la perfección,
muchiiiiiiiiiiiiisimas gracias una vez mas por la utilisima ayuda.  :)