Clipper/FiveWin - Remplazar varios caracteres

   
Vista:
Imágen de perfil de Alejandro

Remplazar varios caracteres

Publicado por Alejandro (30 intervenciones) el 06/04/2015 19:33:09
Estoy aprendiendo un poco de clipper. Yo manejo algo de PHP y quisiera saber si hay forma de remplazar en una cadena varios caracteres a la vez. en php lo hago asi
1
str_replace($variable , Array("'","\\") , Array("\'","\\\\"));

Intente hacerlo con STRTRAN de clipper pero me dio error :(

¿Hay forma o tengo que anidarlo?
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

Remplazar varios caracteres

Publicado por Javier (44 intervenciones) el 09/04/2015 00:35:59
Hola: Deberías poder hacerlo con strtran.
A que te refieres con anidarlo?
Podrias transcribir la linea de codigo clipper que te dio error ?

Saludos!
Javier
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
Imágen de perfil de Alejandro

Remplazar varios caracteres

Publicado por Alejandro (30 intervenciones) el 09/04/2015 01:39:57
Por ejemplo
1
2
3
4
5
6
7
8
9
clear
buscar = {"'","\",Chr(0)}
poner  = {"\'","\\",""}
 
texto = "Texto de 'Ejemplo' \"
 
resultado = STRTRAN(texto,buscar,poner)
 
@ 2,2 say resultado

Error BASE/1126 Argument error: STRTRAN
Called from STRTRAN(0)
Called from REPLACE(7)
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

Remplazar varios caracteres

Publicado por Javier (44 intervenciones) el 10/04/2015 22:30:31
Hola: La funcion strtran solo trabaja con cadenas y tu le estas pasando un array como 2do y 3er argumento. Por eso te sale el error de argumento.

Fijate en https://books.google.com.ar/books?id=vrtI4i8kA4EC&pg=PA95&lpg=PA95&dq=funcion+strtran+clipper&source=bl&ots=TJrqfBETzW&sig=uTPLL-h1ogJ9ZF3l1kJd6VBXTzw&hl=es-419&sa=X&ei=dTAoVbqxJ4nLsASZ-IDYAg&ved=0CCcQ6AEwAQ#v=onepage&q=funcion%20strtran%20clipper&f=false

Lo que que quieres hacer, tendrias que hacer uno por uno los reemplazos. Algo asi:
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
resultado= "Texto de 'Ejemplo' \"
 
buscar = "'"
poner  = "\'"
resultado = STRTRAN(resultado ,buscar,poner)
 
*
buscar = "\"
poner  = "\\"
resultado = STRTRAN(resultado ,buscar,poner)
 
*
buscar = Chr(0)
poner  = ""
resultado = STRTRAN(resultado ,buscar,poner)
 
*********************************************************************
//Otra forma. Manteniendo los arrays de tu codigo.
aBuscar = {"'","\",Chr(0)}
aPoner  = {"\'","\\",""}
resultado= "Texto de 'Ejemplo' \"
 
 
FOR nI := 1 TO Len( aBuscar )
   buscar = aBuscar[nI]
   poner  = aPoner[nI]
   resultado = STRTRAN(resultado ,buscar,poner)
NEXT

Saludos!
Javier.
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
Imágen de perfil de Alejandro

Remplazar varios caracteres

Publicado por Alejandro (30 intervenciones) el 11/04/2015 02:35:19
Queria saber si el lenguaje lo soportaba por si mismo. Hice una funcion para eso. Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Remplazar varios caracteres

Publicado por Javier (44 intervenciones) el 14/04/2015 18:32:33
Pues no, como ves, el lenguaje no lo soporta.
A veces sucede que los que contestan, no se limitan a un "no" o un "si" como respuesta (aunque de esos hay varios) e intentan dar una pequeña ayuda. Esta ayuda, en ocasiones, parece ser un insulto para gente poco preparada para recibirla.
Saludos!
Javier.
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