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

Convertir win-1252 en ISO-8859-1   



L'auteur

Francis Faure
France France
Membre Actif (personne physique)
# 0000000001
enregistré le 11/10/2004

http://www.wanagain.net
56 ans
Faure Francis
de la société Design Or Decline
Fiche personnelle


Note des membres
pas de note

Contributions > 01 - PRG : Programmation > Conversions

Convertir win-1252 en ISO-8859-1
# 0000000746
ajouté le 29/03/2010 17:20:28 et modifié le 29/03/2010
consulté 9561 fois
Niveau débutant

Description

Pour Jean :

Suite à sa demande en news de convertir en ISO-8859-1

Cordialement

Francis

ps : Grégory nous ferait surement une regex en 2 lignes pour la même chose ^^

Code source :
lsChaine = ""
FOR liI=0x80 TO 0x9F
  lschaine = m.lschaine + CHR(m.liI)
next
lsChaine = "Chaine en windows 1252 à convertir en ISO-8859-1 : " + m.lsChaine
? m.lsChaine font "Arial", 16
? STRCONV_win_1252_to_ISO_8859_1(m.lsChaine)  font "Arial", 16


* http://fr.wikipedia.org/wiki/Windows-1252

FUNCTION STRCONV_win_1252_to_ISO_8859_1(lschaine)
LOCAL liI as Integer
  FOR liI=0x80 TO 0x9F
    DO case
      CASE m.liI == 0x80
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [euro]&& symbole €uro
      CASE m.liI == 0x82
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [,]&& quote basse : ressemble a une virgule
      CASE m.liI == 0x83
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [f]&& ressemble a un f
      CASE m.liI == 0x84  OR m.liI == 0x93 OR m.liI == 0x94
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), ["]&& guillement bas
      CASE m.liI == 0x85
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [...]&& 3 points dans le même caractère
      CASE m.liI == 0x88
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [^])
      CASE m.liI == 0x89
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [o/oo]&& pour mille
      CASE m.liI == 0x8A
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [S])
      CASE m.liI == 0x8B
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [<])
      CASE m.liI == 0x8C
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [OE])
      CASE m.liI == 0x8E
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [Z])
      CASE m.liI == 0x91 OR m.liI == 0x92
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), ['])
      CASE m.liI == 0x95
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [.])
      CASE m.liI == 0x96
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [-])
      CASE m.liI == 0x97
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [--])
      CASE m.liI == 0x98
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [~])
      CASE m.liI == 0x99
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [tm])
      CASE m.liI == 0x9A
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [s])
      CASE m.liI == 0x9B
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [>])
      CASE m.liI == 0x9C
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [oe])
      CASE m.liI == 0x9E
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [z])
      CASE m.liI == 0x9F
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [Y])
      otherwise
        lsChaine = STRTRAN(m.lschaine, CHR(m.liI), [ ])
    endcase
  NEXT
RETURN m.lschaine

Commentaires
le 29/03/2010, Jean à Grenoble a écrit :
Merci !

Jean à Grenoble


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