Progress - Cortar una cadena con Progress

 
Vista:
sin imagen de perfil

Cortar una cadena con Progress

Publicado por valdo_kof (3 intervenciones) el 16/10/2012 18:00:39
Buen dia quiciera saber si existe alguna funcion para cortar una cadena con progress 4gl, en otros lenguajes existe la funcion split

la idea es hacer q que esta cadena

define variable cadena as string no-undo init "cadena1,cadena_variable2,cadena_var3".

me separe cada palabra cuando encuentre la coma (,), la funcion split en otros lenguajes ponen cada palabra en un arreglo

alguien que sepa si existe alguna funcion como el split en progress para realizar esto, se lo agradesco de antemano

espero puedan ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cortar una cadena con Progress

Publicado por DparteD (129 intervenciones) el 17/10/2012 20:55:50
Hola.

Espero que este ejempo te sirva para lo que quieres hacer.

1
2
3
4
DEFINE VARIABLE serie AS CHARACTER  FORMAT "x(40)" NO-UNDO.
    serie = "carlos,juan,enrique,tomas".
    serie = REPLACE(serie, ",", " ").
 DISPLAY serie.


Dime si te fue util.

Salidos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cortar una cadena con Progress

Publicado por valdo_kof (3 intervenciones) el 18/10/2012 20:02:19
pues en teoria si quitas las comas, pero lo que necesitaba era quitarlas pero que cada palabra la puciera en un arreglo

se soluciono el problema con esta rutina

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def var a as char format "x(200)".
def var arreglo as char format "x(10)" extent 20.
DEFINE VARIABLE serie AS CHARACTER FORMAT "x(40)" NO-UNDO.
serie = "carlos,juan,enrique,tomas,jose,feliz,pancho,pedro".
def var ii as int.
def var xx as int.
def var final1 as char format "x(100)".
def var linea1 as char format "x(100)".
def var linea2 as char format "x(100)".
xx = 1.
a = serie.
 
do ii = 1 to length(a):
     arreglo[xx] = arreglo[xx] + substring(a,ii,1).
     If substring(a,ii,1) = "," then
        xx = xx + 1.
end.
ii = 0.
xx = 0.
linea1 = trim(arreglo[1]) + trim(arreglo[2]) + trim(arreglo[3]) +
         trim(arreglo[4]) + trim(arreglo[5]) + trim(arreglo[6]) +
         trim(arreglo[7]) + trim(arreglo[8]) + trim(arreglo[9]) +
         trim(arreglo[10]).
linea2 = trim(arreglo[11]) + trim(arreglo[12]) + trim(arreglo[13]) +
         trim(arreglo[14]) + trim(arreglo[15]) + trim(arreglo[16]) +
         trim(arreglo[17]) + trim(arreglo[18]) + trim(arreglo[19]) +
         trim(arreglo[20]).
 
arreglo = "".
 
DISPLAY linea1 + " " + linea2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cortar una cadena con Progress

Publicado por DparteD (4 intervenciones) el 19/10/2012 14:12:42
Crei que solo querias quitar las comas manteniendo los datos sin coma en la misma variable.
pasa esto cuando se entan importando ficheros con nombre de una base de datos externa que se han grabado por ejmplo : Apellido Apellido,Nombre..

Buena idea detectar la coma en la serie de caracteres y llenar una variable con los caracteres leidos hasta lacoma y asi sucesivamente....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cortar una cadena con Progress

Publicado por Juan (5 intervenciones) el 22/10/2012 16:35:33
Progress maneja los char como si fueran listas sin que le digas nada. No tengo el cliente instalado en esta pc pero algo parecido a lo siguiente te puede servir:

do i = 1 to num-entries(serie):
display entry(i, serie).
end.

En lugar de display puedes guardar en otro lado o lo que necesites. Si en lugar de venir separado por coma viene con punto y coma debes usar num-entries(serie, ";") y entry (i, serie, ";").

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cortar una cadena con Progress

Publicado por rogeliolt (9 intervenciones) el 22/01/2013 01:02:25
def var cadena as char format 'x(20)' extent 3 init ['cadena1', 'cadena_variable2', 'cadena_var3'].


...
/*asi lo muestras en forma de listado*/
display
cadena with frame f 1 col.

/*y así lo manipulas como si fuese un combo*/
choose field cadena auto-return with frame f.

ESPERO SEA LO QUE BUSCAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar