5 votos

¿Cómo combinar texto y números enteros en un campo de cadena?

Tengo un campo con números (tipo de campo: doble, formato de número: numérico) y necesito crear un nuevo campo y poner texto delante de los números. Sé que tengo que añadir un nuevo campo de cadena, pero ¿cuál es la expresión adecuada para poner en la calculadora de campo?

Por ejemplo, si mi número es 123, quiero cambiarlo por abc123.

Estoy utilizando ArcMap 10.1

1 votos

Veo el problema que estás teniendo, no se está comportando como debería..

0 votos

¿Con qué software está trabajando?

0 votos

Lo he resuelto para ArcGIS for Desktop 10, que creo que es lo que utiliza Katie.

10voto

Stephen Puntos 1

Esto dependerá del software que utilices. Dado que mencionas Field Calculator en tu pregunta, vas a utilizar un analizador de lenguaje de programación para convertir valores.

Para Python (ArcMap, QGIS), puede utilizar funciones de conversión incorporadas en python . Esta página lo explica bastante bien y muestra ejemplos.

Si utiliza ArcMap y VBScript, hay un segundo conjunto de funciones que puede utilizar. Son las siguientes explicada aquí y también proporcionar ejemplos.

Básicamente en cualquiera de los dos casos, vas a hacer una combinación de los dos campos mientras conviertes el que lo necesita.

Python: stringField + str(numberField)

VBScript: stringField & CStr(numberField)

Advertencia : Esto no tiene en cuenta la comprobación del valor del campo o cualquier cosa que pueda lanzar un error de fundición/conversión/tipo.

Cuando nos digas qué programa utilizas, puedo editar esta respuesta con más detalles y ejemplos.

0 votos

¿Qué tipo de campo debería utilizar? Mi capa es una clase de característica en una base de datos geográfica, por lo que la cadena no es una opción de tipo de campo

0 votos

@Katie, tus campos deben reflejar lo que tienen. Si tienes nombres de objetos (compuestos por letras) estos deben ser almacenados en un campo de texto, mientras que si estás trabajando con números (como valores, no como etiquetas) deben ser almacenados en un campo numérico como short, long, double, float.

6voto

Janis Peisenieks Puntos 164

Aquí está la solución a su pregunta en ArcMap 10.1 cuando se utiliza VB script.

Su ejemplo para esto será: "abc" & [integer] dentro del cuadro de expresión.

Si desea tener un espacio entre su expresión será : "abc" & " " & [entero] (Tenga en cuenta que hay un espacio entre los paréntesis del medio).

Por lo que dijo Adam: El uso del analizador de Python requerirá el tipo de fundición de enteros a una cadena: "abc" + str(!entero!)

2 votos

Esto es correcto si se utiliza el analizador de VBScript. si se utiliza el analizador de Python será necesario convertir el entero en una cadena: "abc" + str(!entero!)

0 votos

Lenguajes VB (sin Option Strict set) son mucho más tolerantes con el lanzamiento implícito. Es un buen hábito lanzar explícitamente los elementos para poder saltar más fácilmente entre lenguajes sin ver todas las excepciones de Type Cast que aparecen con el casting implícito en lenguajes como C# y Python.

2voto

Martin Puntos 273

La función calc de campo que buscas es concat(), por ejemplo

concat( 'abc', 123)

0 votos

¿No es una función puramente SQL?

0 votos

No estoy seguro pero está disponible en la calculadora de campo de qgis y me parece útil

0 votos

Ok no estaba seguro. No uso QGIS a menudo y sólo lo conozco por Transect-SQL y métodos de extensión de cadenas en lenguajes .NET.

0voto

B Fotouhi Puntos 71

En Arcmap dieron este ejemplo

http://resources.arcgis.com/en/help/main/10.1/index.html#//00170000004s000000

Concatenar dos campos con un separador de espacios

¡SUB_REGIÓN! + " " + !STATE_ABBR! en python

0voto

GeneQ Puntos 2885

Yo recomendaría utilizar el método format de la clase string para realizar este tipo de operaciones. Aquí hay un enlace a una pregunta similar:

Concatenar datos numéricos y de cadena en ArcGIS

Como regla general, debe evitar el uso de la concatenación en favor del método de formato. Tendrás un código más limpio y más control sobre la cadena de salida final.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X