L'auteur
FoxInCloud (Th. Nivelet) France Membre Simple # 0000000014 enregistré le 13/10/2004
http://www.foxincloud.com/ Nivelet Thierry 75016 Paris de la société Abaque Fiche personnelle
Note des membres
pas de note
|
Contributions > 01 - PRG : Programmation > Conversions
cEuroAnsi() - chaine de caractère européenne ANSI sans accents
# 0000000020
ajouté le 21/10/2004 10:03:35 et modifié le 30/03/2005
consulté 10130 fois
Niveau
débutant
|
Description |
cEuroAnsi() peut servir à : - créer des noms sans accents (fichiers, dossiers, etc.) - indexer une table sans tenir compte des accents avec SET ("COLLATE") = "MACHINE" qui permet des clés d'index de 200 caractères - etc.
/!\ - cEuroAnsi() crée 2 variables publiques pour améliorer ses performances. - cEuroAnsi() est livrée avec une procédure de test qui illustre son comportement : cEuroANSI_Test /!\
|
Code source : |
* -------------------------------------------------------------
FUNCTION cEuroANSI && Chaine de caractères désaccentuée
LPARAMETERS tcEuropean && Chaine de caractères accentuée
local lcResult && Chaine de caractères désaccentuée
m.lcResult = space(0)
IF Vartype(m.tcEuropean) = 'C' ;
AND !Empty(m.tcEuropean) ;
AND !IsNull(m.tcEuropean)
* Restore translation strings
IF NOT Vartype(m.European) == 'C' ;
OR NOT Vartype(m.EuroANSI ) == 'C'
PUBLIC European, EuroANSI
RESTORE FROM (Home()+'european.mem') ADDITIVE
ENDIF
* Translate
m.lcResult = Sys(15, m.EuroANSI, m.tcEuropean)
* m.lcResult = Chrtran(m.tcEuropean, m.European, m.EuroANSI)
ENDIF
RETURN m.lcResult
* -----------------------------------------------------------------
PROCEDURE cEuroANSI_Test
? Sys(16)
RELEASE European, EuroANSI
? cEuroANSI (.T.) = space(0)
? cEuroANSI (space(0)) = space(0)
? cEuroANSI (null) = space(0)
? cEuroANSI ('hébété') = 'hebete'
? cEuroANSI ('àäâéèêëioòùû') = 'aaaeeeeioouu'
? cEuroANSI ('ÀÄÂÉÈÊËIOÒÙÛ') = 'AAAEEEEIOOUU'
|
Commentaires |
|
STp un peu plus de détails
merci