PDA

Ver la Versión Completa : Cadena de caracteres


MetalGod
31/07/13, 15:13:36
Buenas, como están?

mi consulta es sobre cadenas de caracteres:

Tengo una variable de tipo string, con una frase y quiero poder reemplazar una letra por otra, esta letra a reemplazar se encuentra en el medio, como puedo hacer? el tipo string no me permite una asignación desplazándome hasta el caracter en cuestión y la sentencia REPLACE solo me reemplaza la primer ocurrencia, no me permite posicionarme

DATA:
cad TYPE string VALUE 'SOY UNO CADENA'.


"""""""""""" cad+6(1) = 'A'. ( no me lo permite hacer por se un tipo string y no """""""""""" permite la asignación

"""""""""""" REPLACE 'O' WITH 'A' INTO cad. (me reemplaza solo la primer """""""""""" ocurrencia de 'O'

De la única manera que pude usar la asignación con desplazamiento es declarar la variable de tipo c, pero no me sirve, tiene que ser un string, tiene que poder hacerse.

Agradezco su ayuda, saludos

joau_fedipe
31/07/13, 17:16:04
Amigo,

se me ocurre que puedes hacer lo siguiente :
REPLACE 'UNO' WITH 'UNA' INTO cad.

o también:

DATA: kdn(200) TYPE c. "puede ser 200, 300 o lo más extensa posible

kdn = cad.
kdn+6(1) = 'A'.
cad = kdn.

Saludos:)

MetalGod
31/07/13, 17:38:27
muchas gracias por tu respuesta

La segunda opcion no la tuve en cuenta ya que quiero usar tipo string y no tipo c.

opte por la primera, pero con una variacion, use:

DATA:
cad TYPE string VALUE 'SOY UNO CADENA'.

REPLACE SECTION OFFSET 6 LENGTH 1 OF cad WITH 'A'.

ballan
01/08/13, 17:08:05
Puedes utilizar REPLACE ALL OCURRENCES

MetalGod
01/08/13, 17:10:43
pero esta mal lo que decis, porque eso me reemplazaria todas las ocurrencias, la misma sentencia lo dice (all ocurrences) y solo quiero reemplazar una en especifico

puse cual solucion encontre, igual gracias.