FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour reemplazar un valor en una cadena caracteres
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
reemplazar un valor en una cadena caracteres
Posted: Wed Apr 22, 2015 12:40 PM

Compañeros, buenas tardes:

¿Sabeis la función que reemplaza un valor dentro de una cadena de caracteres?
Tengo una DBF con el campo NOMBRE,C,40
pero necesito hacer un barrido y cambiar todas las "A" del campo NOMBRE por "C"
algo así como
remplezar(nombre,"A","C")

Mil gracias.
LORENZO.

Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: reemplazar un valor en una cadena caracteres
Posted: Wed Apr 22, 2015 02:04 PM

Lorenzo, si usas harbour tienes que enlazar hbct.lib
La funcion es Charrepl()
te dejo debajo como funciona
Saludos
/
* $Id: charrepl.txt 15102 2010-07-14 12:48:39Z vszakats $
/

/ $DOC$
* $FUNCNAME$
* CHARREPL()
* $CATEGORY$
* CT3 string functions
* $ONELINER$
* Replacement of characters
* $SYNTAX$
* CHARREPL (<cSearchString>, <[@]cString>,
* <cReplaceString>, [<lMode>]) -> cString
* $ARGUMENTS$
* <cSearchString> is a string of characters that should be replaced
* <[@]cString> is the processed string
* <cReplaceString> is a string of characters that replace the one
* of <cSearchString>
* [<lMode>] sets the replacement method (see description)
* Default: .F.
* $RETURNS$
* <cString> the processed string
* $DESCRIPTION$
* The CHARREPL() function replaces certain characters in <cString>
* with others depending on the setting of <lMode>.
* If <lMode> is set to .F., the function takes the characters of
* <cSearchString> one after the other, searches for them in <cString>
* and, if successful, replaces them with the corresponding character
* of <cReplaceString>. Be aware that if the same characters occur
* in both <cSearchString> and <cReplaceString>, the character on a
* certain position in <cString> can be replaced multiple times.
* if <lMode> is set to .T., the function takes the characters in <cString>
* one after the other, searches for them in <cSearchString> and, if
* successful, replaces them with the corresponding character of
* <cReplaceString>. Note that no multiple replacements are possible
* in this mode.
* If <cReplaceString> is shorter than <cSearchString>, the last
* character of <cReplaceString> is used as corresponding character
* for the the "rest" of <cSearchString>.
* One can omit the return value by setting the CSETREF() switch to .T.,
* but then one must pass <cString> by reference to get the result.
* $EXAMPLES$
* ? charrepl ("1234", "1x2y3z", "abcd") // "axbycz"
* ? charrepl ("abcdefghij", "jhfdb", "1234567890") // "08642"
* ? charrepl ("abcdefghij", "jhfdb", "12345") // "55542"
* ? charrepl ("1234", "1234", "234A") // "AAAA"
* ? charrepl ("1234", "1234", "234A", .T.) // "234A"
* $TESTS$
* charrepl ("1234", "1x2y3z", "abcd") == "axbycz"
* charrepl ("abcdefghij", "jhfdb", "1234567890") == "08642"
* charrepl ("abcdefghij", "jhfdb", "12345") == "55542"
* charrepl ("1234", "1234", "234A") == "AAAA"
* charrepl ("1234", "1234", "234A", .T.) == "234A"
* $STATUS$
* Ready
* $COMPLIANCE$
* CHARREPL() is compatible with CT3's CHARREPL().
* $PLATFORMS$
* All
* $FILES$
* Source is charrepl.c, library is ct3.
* $SEEALSO$
* WORDREPL() POSREPL() RANGEREPL()
* CSETREF()
* $END$
/

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: reemplazar un valor en una cadena caracteres
Posted: Wed Apr 22, 2015 02:22 PM

Gracias Ruben, pero utilizo xHarbour

Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: reemplazar un valor en una cadena caracteres
Posted: Wed Apr 22, 2015 02:34 PM
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: reemplazar un valor en una cadena caracteres
Posted: Wed Apr 22, 2015 03:01 PM

Lorenzo, tambien esta en xHarbour.

Saludos
Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: reemplazar un valor en una cadena caracteres
Posted: Wed Apr 22, 2015 03:22 PM

Holas.... revisen esto:

cXx := "AHAHAHSHAHAHAH"
cXx := STRTRAN(cXx, "A", "C") // REEMPLAZA LA "A" POR LA "C"

? cXx -> CHCHCHSHCHCHCH

sALU2

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: reemplazar un valor en una cadena caracteres
Posted: Wed Apr 22, 2015 03:24 PM

Como dice Willi, StrTran()

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion