| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Pedro Felipe Invitado
|
Publicado: Sab 19 Mar, 2005 12:01 pm Asunto: Problemas con chdir y AnsiString |
|
|
Hola
Estoy haciendo una aplicación que ha de construir una carpeta nueva en el directorio donde este la aplicacion y guardar en ella un archivo
AnsiString ruta;
ruta=ExtractFilePath(Application->ExeName) ;
FILE *pa;
// y ahora viene mi problema cuando intento decirle donde está la carpeta de trabajo
//si pongo
chdir(ruta);
// recibo un error diciendome que no puede convertir AnsiString a char
Mi primera pregunta es la siguiente:
Como lógicamente no conozco la carpeta donde va a ir la aplicación y el numero de caracteres que tendrá la cadena no puedo declarar un char[x], siendo x el numero de caracteres que tendrá la ruta de acceso
Necesitaria por tanto poder declarar un array de char al que en tiempo de ejecución pudiera adjudicar la longitud de la cadena de acceso al directorio de la aplicación
Es posible ?
Y la segunda pregunta:
Si fuese posible hacer esto hay algun modo, utilizando alguna funcion de C para convertir ese AnsiString a char y colocarlo dentro del chdir() ?
Quizás esté afrontando este tema de una manera equivocada
Por favor orientadme un poco
Os lo agradeceré un montón
Un saludo
Pedro
Un novato |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Sab 19 Mar, 2005 2:33 pm Asunto: |
|
|
Hola, para pasar de AnsiString a char, utiliza para el metodo del ansistring.c_str().
En tu caso: ruta.c_str()
Ojo con las dobles \\ de los directorios. |
|
| Volver arriba |
|
 |
Pedro Felipe Invitado
|
Publicado: Dom 20 Mar, 2005 12:53 am Asunto: |
|
|
Muchas gracias por contestar
Cuando pongo
char array[20];
AnsiString ruta = "C:\\\pruebas\\";
array=ruta.c_str();
me da un error diciendome que le falta el parametro L
Estoy obcecado y no encuentro el error
Gracias de nuevo |
|
| Volver arriba |
|
 |
jb_______ Cdt

Registrado: 22 Dic 2003Mensajes: 21
|
Publicado: Dom 20 Mar, 2005 4:08 am Asunto: |
|
|
Buenas... para copiar cadenas de texto debes usar la funcion strcpy (strings.h)
char array[20];
AnsiString ruta = "C:\\pruebas\\"; // Aqui tenias una \ "de más"
strcpy(array, ruta.c_str()); |
|
| Volver arriba |
|
 |
Pedro Felipe Invitado
|
Publicado: Dom 20 Mar, 2005 11:41 pm Asunto: |
|
|
Muchas gracias por las respuestas
Pedro Felipe |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Lun 21 Mar, 2005 12:32 am Asunto: |
|
|
Lo unico que tienes que hacer es esto:
| Código: |
chdir(ruta.c_str());
|
_________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
|