Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
Ayuda al foro con tu donación

Búsqueda en los foros

Foros en Udias.com / FileMaker / Extraer un carácter concreto de un campo de texto
Autor Mensaje

Miembro

Constante

  Karma             797

#1 Publicado: 26 Mar 2012 02:53



Hola a todos.

Necesito saber si es posible extraer un carácter concreto de un campo de texto. Es decir tendría un campo "Texto_prueba" con un valor "ABCD" y quiero extraer -con un campo calculado o como sea posible- el 2º carácter empezando por la derecha, en este caso sería la "C".

Texto_pueba = ABCD (extraer 2º por la derecha)
Carácter = C

Texto_prueba = 123ABC (extraer 3º por la derecha)
Carácter = A

He leido las funciones left, right y middle, pero me obliga a extraer una cadena entera y yo solo quiero extraer 1 carácter.

Agradecería vuestra ayuda, tengo experiencia con Filemaker, pero me he atascado con esto.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Moderador

Adicto

  Karma               2430

#2 Publicado: 26 Mar 2012 07:41 - Editado por: JotaEme



La función Middle tiene 3 parámetros:
- Texto
- Inicio
- Número de caracteres
Si el último parámetro es 1 sólo te extraerá un carácter.
Por ejemplo: Middle("123ABC";4;1) te extrae 1 carácter empezando en la posición 4 del texto (o campo en su caso) especificado, osea, la "A".


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Miembro

Constante

  Karma             797

#3 Publicado: 26 Mar 2012 13:14



Gracias por tu respuesta, JotaEme, pero creo que no os di toda la información.

Debí deciros que es una prueba para deletrear números, por lo que necesito que busque los caracteres desde la derecha. Ya sé que hay otros hilos en el foro con bases ya hechas para deletrearlos, pero para mí esto es un ejercicio.

Tengo un campo "Texto_prueba" con un número "1234". Como el lenguaje y las matemáticas no suelen corresponderse con exactitud, los números del 1 al 99 los tengo en una tabla con su correspondencia en texto. Para extraer las dos primeras cifras de la derecha (decenas y unidades) he usado el cálculo:

"Right ( Texto_prueba ; 2 )" cuyo resultado es, obviamente, "34"

¿Cual sería el cálculo para conseguir la tercera cifra y la cuarta -o más, si hubiera-? (el 2 y el 1)
Hay que tener en cuenta que los número que escribamos en el campo "Texto_prueba" no van a tener una cantidad fija de cifras y no quiero rellenar esas cifras con ceros para que siempre tengan la misma longitud.
Vamos, que lo que quiero saber es si hay un cálculo para decirle a Filemaker: "Extrae el 3º carácter empezando por la derecha"

Debe ser una simpleza, pero no doy con la tecla.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Administrador


  Karma               26424

#4 Publicado: 26 Mar 2012 13:19 - Editado por: jcu



Utiliza la función Middle( texto ; posición inicial ; posición final )

Para las funciones y pasos de guión

Base de conocimiento de Filemaker


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Constante

  Karma             797

#5 Publicado: 26 Mar 2012 14:44



Hola, jcu.

No lo veo claro. En el último mensaje ponía el ejemplo:
"Texto_prueba" = "1234"

y tengo 3 campos calculado que son:
D+U (decenas y Unidades) con la fórmula "Right ( Texto_prueba ; 2 )" El resultado es 34
C (centenas) con la fórmula "Middle ( Texto_prueba ; 2 ; 1 )" el resultado es 2
M (millares) con la fórmula "Middle ( Texto_prueba ; 1 ; 1 )" el resultado es 1

pero si el campo "Texto_prueba" = "12345" ya la hemos liado porque cuenta desde la izquierda, por lo tanto, sólo el cálculo right será correcto "45", el resto de campos calculados pierden una posición y las cifras que dan como resultado son erróneas.

¿Podrías escribir la fórmula para esos dos casos?


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Moderador

Adicto

  Karma               2430

#6 Publicado: 26 Mar 2012 16:02 - Editado por: JotaEme



No se si te valdrá pero puedes probar con:
- Centenas--> If(length(Texto_prueba)>2;Middle(Texto_prueba;leng th(Texto_prueba) -2;1);"")
- Millares--> If(length(Texto_prueba)>3;Middle(Texto_prueba;leng th(Texto_prueba) -3;1);"")


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 8 y Filemaker 11

Administrador


  Karma               26424

#7 Publicado: 26 Mar 2012 16:04



Supongamos que tengo un campo total_caracteres que es igual al número de caracteres que componen el campo Texto_prueba

Este campo D+U (decenas y Unidades) con la fórmula "Right ( Texto_prueba ; 2 )" no varía, da igual el número de caracteres.

Este otro C (centenas) con la fórmula "Middle ( Texto_prueba ; 2 ; 1 )" tampoco depende del número de caracteres.

Este M (millares) sí cambia

if ( total_caracteres =4 ; Middle ( Texto_prueba ; 1 ; 1 ) ;
if ( total_caracteres =5 ; Middle ( Texto_prueba ; 1 ; 2 ) ;
"Otro"))

Si tienes más caracteres puedes ampliar la fórmula.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Constante

  Karma             797

#8 Publicado: 26 Mar 2012 19:07



Bueno, pues lo hemos solucionado todo y nada.

Me explico. Yo ya había solucionado el problema usando las funciones "Ceilling", "Floor" e "Int" (cada una de ellas es una solución por sí mísma). Tanto JotaEme como jcu han encontrado caminos distintos para solucionar el mismo problema. Eso es lo maravilloso de Filemaker. Me han encantado vuestras soluciones y estoy deseando llegar a casa para probarlas, pero ya intuyo que van a funcionar bien. La de JotaEme me cuesta un poquito más entenderla.

Yo quería saber si había una función que diera esa orden directamente, pero veo que hay que ir con rodeos para atacar este problema.
Mi solución era dividir las centenas por cien y redondear, los millares por mil y redondear, y así sucesivamente.

Os voy a adjuntar mis archivos por si queréis echarles un vistazo.

Muchísimas gracias, he aprendido más este fin de semana que en todos los años que llevo haciendo el indio con FM. Magnífico foro.

Numeros_a_texto.fp7Archivo adjunto: Numeros a texto
 
Numeros_a_texto_tabl.fp7Archivo adjunto: Numeros a texto tabla hasta 100
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Miembro

Constante

  Karma             797

#9 Publicado: 26 Mar 2012 19:12



Perdón le di a enviar sin terminar.

Para los que descarguen los archivos, verán que hay otros campos al final para escribir como palabras los campos (cifras) que extrajimos. Obviamente, está sin terminar, falta alguna tabla más, pero los subo para que se pueda ver la definición de campos.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Miembro

Constante

  Karma             797

#10 Publicado: 26 Mar 2012 19:50



Hola, jcu.

He llegado a un hilo del foro, del año 2003, en el que el usuario toti colgaba un archivo para convertir numero a texto. Allí daba la dirección de su página para descargarlo y chequearlo. Lamentablemente, la página ya no está activa. ¿Por uno de esto casuales no tendrás una copia de ese archivo? Es que he visto que tú lo descargaste, y me gustaría ver cómo lo hizo toti.

Gracias.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Siempre agradecido por vuestra inestimable ayuda. Mac OSX High Sierra - FM Pro Advanced 16

Administrador


  Karma               26424

#11 Publicado: 26 Mar 2012 20:45



En las descargas, sección trucos, tienes varios que lo hacen. Creo que el de Toti lo modifiqué y es uno de ellos, pero no estoy seguro.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Extraer un carácter concreto de un campo de texto

Extraer parte del texto de un campo
Extraer parte de un campo de texto
Extraer texto de enlace campo contenedor
¿Como puedo extraer parte de un texto de un campo?
Como recorrer cadena caracter por caracter


Conectados: Invitados - 1
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2021
Para Udias.com © 1996-2021
Hosting con Interdominios