ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

cEuroAnsi() - chaine de caractère européenne ANSI sans accents   



L'auteur

FoxInCloud (Th. Nivelet)
France 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
le 27/09/2007, s27j a écrit :
STp un peu plus de détails
merci

le 28/09/2007, FoxInCloud (Th. Nivelet) a écrit :
Sur quoi ?
;)


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3