| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
sisabb Lt JG

Registrado: 07 Ago 2003Mensajes: 71
|
Publicado: Mar 03 Feb, 2009 11:25 am Asunto: Problema al pasar cadenas a propiedades de objetos com |
|
|
Al pasar una cadena a una propiedad con OlePropertySet, el 'C' pasa la cadena con el caracter NULL al final.
Mi problema es que ese caracte NULL es tambien utilizado por el Objeto.
Por Ejemplo al pasar un dato en word a un campo, marca, coloca bien el dato pero con el NULL incluido con lo que sale un simbolo de un cuadradillo.
Existe alguna funcion para pasar las cadenas si en NULL. |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Mar 03 Feb, 2009 12:25 pm Asunto: |
|
|
Para C, todas las cadenas terniman en nulo. Es la única forma de pasar cadenas sin pasar su longitud.
Algunas funciones admiten un buffer y una longitud, en este caso en el buffer se puede pasar una cadena sin nulo al final.
El problema del cuadradillo puede ser del nulo, en este caso no tienes mas que eliminarlo y sustituirlo por el caracter separador. Eso lo haces con un simple strcat.
En ocasiones se precisa de caracteres separadores que pueden ser "\n\r" u otro carácter. en el caso de retorno de línea y de carro, si falta uno o sobra, saldrá un carácter no imprimible o cuadradillo. Revisa este punto.
Saludos. |
|
| Volver arriba |
|
 |
sisabb Lt JG

Registrado: 07 Ago 2003Mensajes: 71
|
Publicado: Mar 03 Feb, 2009 12:37 pm Asunto: |
|
|
Gracias escafandra, pero ya he visto cual era el problema.
El problema es que hay que utilizar siempre para pasar datos el tipo Variant.
Es decir crear una variable de tipo Variant y a esta asignarle la cadena, y no se le puede asignar un AnsiString, en caso de tener el dato en un ansistring hay que utilizar el metodo c_str().
De todos modos gracias. |
|
| Volver arriba |
|
 |
|