FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
convertir unicode string to char en c++ builder
Saludos a todos
Necesito convertir un String 'o UnicodeString a un char * char * a = "Ejemplo"; // El resultado de esto es: "Ejemplo"; String a = "Ejemplo"; // El resultado de esto es: L"Ejemplo"; Como ven la (L) esta delante de lo que me da como resultado,cosa que quisiera eliminar porque asi me da error en lo que estoy haciendo. |
#2
|
||||
|
||||
Cita:
Revisa este link puede que te sirva
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
#3
|
||||
|
||||
Cita:
1.- Si tienes activada en las opciones del proyecto: _TCHAR maps to = char entonces y partiendo un un String Unicode, la función t_str() te devuelve una cadena tipo char*. 2.- Si tienes activada en las opciones del proyecto: _TCHAR maps to = wchar_t entonces y partiendo un un String Unicode, la función t_str() te devuelve una cadena tipo wchar_t*. 3.- c_str() siempre devuelve un wchar_t si se aplica a un UnicodeString. 4.- Siempre puedes forzar la conversión a AnsiString y aplicar c_str():
Saludos. |
#4
|
|||
|
|||
Gracias amigos por contestar
Estuve probando las variantes que me dieron pero aun sigue mi el problema Voy a explicar mejor lo que quiero lograr,quizas este cometiendo algun error, En la exportacion de un excel quiero dar la opcion de que se escoja la carpeta donde se va a guardar ese excel,para ello obtengo la direccion de un DirectoryListBox1 y lo paso a un Edit,en otro Edit doy la opcion para ponerle el nombre al excel Código:
String Direccion = Edit1->Text; String Nombre = Edit2->Text; String Barras = "\\"; String Salvar = Direccion + Barras+ Nombre + ".xlsx"; char *c = AnsiString (Salvar).c_str(); Código:
Excel.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs", c); Código:
Excel.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs","D:\\prueba.xlsx"); Gracias por su tiempo!! |
#5
|
||||
|
||||
Cita:
Entonces creo que podrías simplemente hacer: Código:
String Salvar = Edit1->Text + "\\\\" + Edit2->Text + ".xlsx"; char *c = Salvar.c_str(); ... Edito: Y se puede reducir el código un poco más: Código:
char *c = AnsiString(Edit1->Text + "\\\\" + Edit2->Text + ".xlsx").c_str(); ...
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 01-10-2012 a las 22:32:30. Razón: Agregar ejemplo |
#6
|
|||
|
|||
saludos ecfisa
Me sigue dando el mismo error: Compruebe que la carpeta especificada existe. Compruebe que la carpeta que contiene el archivo no es de solo lectura. Compruebe que el archivo no contiene ninguno de los siguientes caracteres: < > ? [ ] : | o * Compruebe que el nombre del archivo o de la ruta no tienen mas de 218 caracteres. Sin embargo como le decia cuando lo pongo directamente funciona Código:
Excel.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs","D:\\prueba.xlsx"); |
#7
|
||||
|
||||
Hola LuisMiguel.
Pero ese eror no proviene de la composición de la cadena, cuyo valor es fácilmente comprobable: Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { TCaption a = "D:", b = "\\\\", c = "prueba", d = ".xlsx"; ShowMessage(AnsiString(a+b+c+d).c_str()); }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
|||
|
|||
Hice la siguiente prueba con lo que usted me dijo:
Código:
char *b = AnsiString(Edit1->Text + "\\\\" + Edit2->Text + ".xlsx").c_str();// resultado D:\backups\\prueba.xlsx char *c = "D:\\backups\\prueba.xlsx"; // resultado D:\backups\prueba.xlsx ShowMessage(b); ShowMessage(c); Quizas el detalle este en las \\\\ que tiene Código:
char *b = AnsiString(Edit1->Text + "\\\\" + Edit2->Text + ".xlsx").c_str(); |
#9
|
|||
|
|||
probe como me dijo y devuelve: Tipo de variable incorrecto
|
#10
|
||||
|
||||
Hola LuisMiguel
. Cita:
Cita:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
|||
|
|||
Lo que ingreso
Edit1 D:\backups Edit2 prueba |
#12
|
||||
|
||||
Hola.
Dado tu ingreso, si deseas como resultado: "D:\backups\Prueba.xlsx" podés hacer: Código:
String s = Edit1->Text; char *c = AnsiString(IncludeTrailingPathDelimiter(s)+ Edit2->Text+".xlsx").c_str(); Código:
AnsiString s = Edit1->Text; s = s.SubString(0,s.Pos("\\")) + "\\" + s.SubString(s.Pos("\\")+1,s.Length()) + + "\\\\" + Edit2->Text + ".xlsx"; char *c = AnsiString(s).c_str();
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 02-10-2012 a las 00:03:34. Razón: corregir identado |
#13
|
|||
|
|||
Finalmente la solucion para exportarlo es con:
Código:
String s = Edit1->Text; char *c = AnsiString(IncludeTrailingPathDelimiter(s)+ Edit2->Text+".xlsx").c_str(); |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Convertir char*, char[], string | lmpadron | C++ Builder | 2 | 29-10-2010 09:08:45 |
convertir int o char a hexadecimal. | bactering | C++ Builder | 2 | 05-10-2008 21:18:45 |
convertir un int a string en builder c++ | BC++ | C++ Builder | 3 | 25-07-2008 15:24:50 |
Convertir un Single en 4 char | cmurua71 | Varios | 4 | 15-06-2007 11:25:26 |
String, PChar y UNICODE | Ñuño Martínez | Varios | 5 | 04-06-2007 19:39:20 |
|