Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Tipo de dato (https://www.clubdelphi.com/foros/showthread.php?t=52207)

nelem 14-01-2008 12:34:11

Tipo de dato
 
Hola a ver si podeis ayudarme tengo una variable Attr :IXMLNode; y quiero saber el tipo de valor contiene su Attr.NodeValue; porque yo lo que estoy insertando en la base de datos un integer y hay veces que contiene un string hay alguna manera de saber cuando contiene el string.

Muchas gracias

dec 14-01-2008 12:58:17

Hola,

No recuerdo exactamente, pero, lo que esté en el archivo XML, ¿no es un "string" en todo caso? Lo que quiere decir que si necesitas añadir un entero en la base de datos, acaso tengas que convertir el "string" que obtienes del archivo XML a entero, con funciones como "StrToInt", "StrToIntDef", "TryStrToInt", etc. ¿O me equivoco?

nelem 14-01-2008 13:04:11

Hola creo que me explique mal lo siento, a ver cuando lo que tiene es un valor que no sea un entero yo tengo que descartarlo es decir no tengo que insertar en la base de datos por lo que tengo que ser capaz de saber que tipo de dato contiene.

Muchas gracias

dec 14-01-2008 13:12:54

Hola,

No; tal vez fui yo el que no supe entenderlo como creo que lo entiendo ahora. Pero, echando un vistazo por encima al componente "TXMLDocument", y por lo que recuerdo, no parece que pueda hacerse de un modo tal como esperas. Los "IXMLNode" tienen una propiedad "NodeType", pero, esta es su definición:

Código Delphi [-]
  TNodeType = (ntReserved, ntElement, ntAttribute, ntText, ntCData,
    ntEntityRef, ntEntity, ntProcessingInstr, ntComment, ntDocument,
    ntDocType, ntDocFragment, ntNotation);

Como ves, como mucho podemos obtener un "string", y, si no me equivoco (que puede ser) la forma de hacer lo que quieres sería, o bien que el nodo esté identicado con algún atributo (que pudieras mirar) o bien, si esto no es así (y de todas formas la validación no te la quita nadie) validar el dato en cuestión de modo que concuerde con lo que queremos.

Esto quiere decir que tú deberías leer el texto del nodo como una cadena, y usar una función tal que "TryStrToInt()". Esta función retornará "True" si la cadena en cuestión pudo convertirse a entero, y "False" si no pudo convertirse. No sé si ahora me he explicado con más claridad. Acaso algún otro compañero sepa dar algún otro dato.

nelem 15-01-2008 16:46:06

Muchas gracias con la función TryStrToInt() me fue bien ya lo tengo resuelto.

Un saludo


La franja horaria es GMT +2. Ahora son las 14:52:21.

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