Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
128c ttf
Message
From
09/02/2011 16:24:26
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 9 SP2
Miscellaneous
Thread ID:
01499408
Message ID:
01499467
Views:
35
I tested your function, and as far as I can see it returns the same number of characters, 9 or not 9 in the third position.


NB! Please enable auto quote (hover the mouse over Message view setup, and click this option.

>here is it
>
>
>
>
>
>FUNCTION _StrTo128C(tcString)
>  LOCAL lcStart, lcStop, lcRet, lcCheck, lcCar, ;
>    lnLong, lnI, lnCheckSum, lnAsc
>  lcStart = CHR(105 + 32)
>  lcStop = CHR(106 + 32)
>  lnCheckSum = ASC(lcStart) - 32
>  lcRet = ALLTRIM(tcString)
>  lnLong = LEN(lcRet)
>  *--- La longitud debe ser par   === longitude must be pair
>  IF MOD(lnLong,2) # 0
>    lcRet = '0' + lcRet
>    lnLong = LEN(lcRet)
>  ENDIF
>  *--- Convierto los pares a caracteres  ** convert pairs to chars.
>  lcCar = ''
>  FOR lnI = 1 TO lnLong STEP 2
>    lcCar = lcCar + CHR(VAL(SUBS(lcRet,lnI,2)) + 32)
>  ENDFOR
>  lcRet = lcCar
>  lnLong = LEN(lcRet)
>  FOR lnI = 1 TO lnLong
>    lnAsc = ASC(SUBS(lcRet,lnI,1)) - 32
>    lnCheckSum = lnCheckSum + (lnAsc * lnI)
>  ENDFOR
>  lcCheck = CHR(MOD(lnCheckSum,103) + 32)
>  lcRet = lcStart + lcRet + lcCheck + lcStop
>  *--- Esto es para cambiar los espacios y caracteres invalidos  === chave invalid spaces
>  lcRet = STRTRAN(lcRet,CHR(32),CHR(232))
>  lcRet = STRTRAN(lcRet,CHR(127),CHR(192))
>  lcRet = STRTRAN(lcRet,CHR(128),CHR(193))
>  RETURN lcRet
>ENDFUNC
>
>
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform