Convertir AnsiString a char[260]
Hola amigos,
tengo un problemita, necesito asiganr un texto en AnsiString a un de char[].... Código:
[bcc32 Error] Unit1.cpp(120): E2034 Cannot convert 'AnsiString' to 'char[260]' Saludos y gracias de antemano. |
c_str() te devuelve un puntero al buffer ASCIIZ del String, para asignarlo a un array tipo char[] deber copiar el contenido:
Código:
AnsiString name = "lo que sea"; Saludos. |
Hola.
Otra opción para este caso es strcpy, Código PHP:
Saludos :) |
listo y gracias
Gracias escafandra y ecfisa,
Ambos códigos me funcionaron, pero el código de escafandra con strncpy() me daba un problema, no me reconocia todos los AnsiString que convertía char[]. El código de ecfisa, si me reconocía todos los nombres que pasaba de AnsiString a char[], lo comento como dato para los que visiten este hilo. Agrego que lo estoy trabajando con el Trial de Embarcadero XE8, quizás eso influye algo si es con builder o Embarcadero, ya que por lo que tengo entendido trabajan mas con builder. Saludos y gracias. |
Cita:
Si dices que "no reconoce" todos los ansichar el problema lo vas a tener en que estén vacíos o en el cálculo de la longitud y no en la versión de la función. No es muy recomendado el usno de strcpy por el riesgo de un desbordamiento de pila si no se tiene la precaución de tener un buffer lo suficientemente grande. Una cadena corrupta o inesperedamente larga lo producirá, para evitar eso se diseñó strncpy. El mismo Windows tiene versiones seguras de esta función en su API. La forma segura de usar strncpy es esta: Código:
AnsiString name = "lo que sea"; Saludos. |
Hola escafandra.
Recién ahora lo noto y creo que la razón del problema que menciona darkmir es debido al valor pasado al argumento maxlen en el primer ejemplo de strncpy. Saludos :) |
Evidentemente, ecfisa. :)
Saludos. |
La franja horaria es GMT +2. Ahora son las 07:20:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi