Extraer caracteres

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

HBarros
vAdviser
vAdviser
Mensajes: 746
Registrado: 14 Feb 2006, 17:48
Ubicación: Vigo

Extraer caracteres

Mensaje por HBarros » 29 Dic 2006, 18:12

Cómo puedo extraer el primer caracter de una cadena de la siguiente manera?.

Ej: Pliego de Condiciones.

Resultado: PdC, es decir que me extraiga solamente el primer caracter de cada palabra despues de llevar un espacio.

Estoy tratando combinaciones con Left, Right y mid, pero no me sale lo que pretendo.

Gracias y un saludo

Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK » 29 Dic 2006, 18:25

En un proceso o función. Yo lo haría función.

1.- Recibes la cadena
2.- Detectas el primer espacio
3.- Te quedas con el trozo hasta el primer espacio
4.- Te quedas con la primera letra del trozo
5.- Le quitas el trozo a la cadena
6.- Llamas recursivamente a la función

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"

HBarros
vAdviser
vAdviser
Mensajes: 746
Registrado: 14 Feb 2006, 17:48
Ubicación: Vigo

Mensaje por HBarros » 29 Dic 2006, 18:30

Hola Domingo, por cierto, me fue mal con la risa viendo el enlace JB, que bueno!!.

Volviendo al tema, he creado un campo nemotecnico en una tabla que al ser cubierto el nombre del campo de la tabla en contenido inicial del campo nemotecnico quiero que me salga po defecto la abreviatura como antes comentaba.

Tengo que crear una función o proceso por narices?, no puedo detectar el primer y segundo espacio de otra manera?

Gracias

Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK » 29 Dic 2006, 18:36

Yo tengo funciones similares como contenido inicial de campos y funcionan de perlas.

Además ese creo que es trabajo de una función, pero yo no soy un purista.

Oye, espero que no os formeis una mala imagen de mí; la receta del pavo con whisky, ahora la felicitación de J&B... :wink: :lol:

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"

HBarros
vAdviser
vAdviser
Mensajes: 746
Registrado: 14 Feb 2006, 17:48
Ubicación: Vigo

Mensaje por HBarros » 29 Dic 2006, 18:40

Jajaja :lol: , no te preocupes si cada uno al final se descrubre solo... jajajaja :lol: , a unos les va mas el whisky y a otros la birra... jajaja.

No hombre es de coña, la verdad es que esta muy bien el monologo, se lo curraron bien.


bueno voy a probar como me dices,

Gracias... :wink:

Avatar de Usuario
ebarbeito
vAdviser
vAdviser
Mensajes: 692
Registrado: 29 Mar 2006, 16:37
Ubicación: Alicante - Alicante - España (38.359746, -0.425613)
Contactar:

Mensaje por ebarbeito » 29 Dic 2006, 19:45

Buenas

Confieso que le tengo debilidad a estos juegos algorítmicos, una pena que no coloquen cosas así en la sección de pasatiempos de las revistas :(

Una función rápida y poco genérica sería:

Código: Seleccionar todo

Set result , ""
Libre
if fLen( 'str' )
   Set reps , fOcurrenciasSubCadena( 'str', 'cad', 0 ) + 1
   for i , 0 , 'i' < 'reps' , 1
      Set result , 'result' + fLeft( 'str', 1 )
      Set str , fMid( 'str', fPosSubCadena( 'str', 'cad', 0 ) + 1, fLen( 'str' ) - fLen( fMid( 'str', 0, fPosSubCadena( 'str', 'cad', 0 ) ) ) )
Libre
Set retorno función 'result'
El prototipo sería algo así como string str_iniciales (string, char); y es algo rápido (¡me voy a casa ya! no tengo tiempo de pensar nada mejor :lol:) porque solo vale para cadenas que tengan un único espacio (u otro caracter, 'cad') entre palabra y palabra.

Lo suyo es hacer una función que recibiera dos cadenas de caracteres: una 'str' que fuera la de donde extraer las iniciales ("caracter derecho a token") y otra cadena de caracteres 'tokens' para poder indicar los diferentes caracteres separadores:

msg = "Un día vi a_una.Vaca-@vestida de!Uniforme"
result = str_iniciales ('msg', "!-_ .")
// result = UdvauV@dU

Arf me tengo que ir ya, luego sigo si eso :lol: ¡vSaludos!
#!/Enrique/Barbeito/García ...
http://enrique.barbeito.org

¡Apúntate al grupo Velneo en Last.fm! [+info]

Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK » 29 Dic 2006, 19:59

Mira por donde ya salió el purista :wink: :lol:

Genial, enrique, como siempre; limpio, ordenado, elegante...

Ah! por cierto, a mí me va más el Ron :P

Un saludo, y hasta el año que viene.
DomK
"La simplicidad es la sofisticación definitiva"

HBarros
vAdviser
vAdviser
Mensajes: 746
Registrado: 14 Feb 2006, 17:48
Ubicación: Vigo

Mensaje por HBarros » 29 Dic 2006, 20:44

Pues ya te digo... voy a probar tu función enrique... es mejor que la chapuza que estaba intentando... :D .

GRacias la voy a probar y os cuento...

un abrazo...

PD, Domingo, cuando vuelvas por Vigo te invitaré unas cuantas copas de RON!!!! nos vemos...

Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45
Ubicación: Gijón - Asturias - España- Posición: 43.532928,-5.628616

Mensaje por Cuco » 29 Dic 2006, 22:49

¿Puede ser algo así más sencillo?
Adjuntos
Funcion_Siglas.JPG
Función siglas
(41.46 KiB) Descargado 298 veces
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616

Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45
Ubicación: Gijón - Asturias - España- Posición: 43.532928,-5.628616

Mensaje por Cuco » 30 Dic 2006, 19:18

Otr versión similar para contemplar lo que señala Enrique Barbeito, lo del "Token"
En definitiva, todo el trabajo se hace en la rama de la instrucción de proceso "Recorrer buffer, una gran utilidad de Velneo para tratamiento de cadenas.
Adjuntos
Siglas-nuevo.jpg
Otra versión de fSiglas()
(36.21 KiB) Descargado 255 veces
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616

Responder