Convertisseur Ansi > Ascii et Ansi < Ascii

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Convertisseur Ansi > Ascii et Ansi < Ascii

Message par GallyHC »

Bonjour tous,

Voila une petite fonction de convertion qui peu etre utile par moment.

Code : Tout sélectionner

Procedure.s OEMConvert(Text.s, Ansiconvert.b=#False)
;
  Define i.l
  Define Pos.l
  Define ASCI.s
  Define ANSI.s
  Define SRCE.s
  Define DEST.s
  Define TEMP.s

  ASCI = Chr(132) + Chr(148) + Chr(129) + Chr(225) + Chr(142) + Chr(153) + Chr(154) + Chr(128) + Chr(130) + Chr(131) + Chr(133) + Chr(134) + Chr(135) + Chr(136) + Chr(137) + Chr(138) + Chr(139) + Chr(140) + Chr(143) + Chr(144) + Chr(147) + Chr(150) + Chr(151) + Chr(20) + Chr(145) + Chr(146) + Chr(155) + Chr(156) + Chr(166) + Chr(167) + Chr(171) + Chr(172) + Chr(237) + Chr(241) + Chr(246) + Chr(253) + Chr(21) + Chr(157)
  ANSI = Chr(228) + Chr(246) + Chr(252) + Chr(223) + Chr(196) + Chr(214) + Chr(220) + Chr(199) + Chr(233) + Chr(226) + Chr(224) + Chr(229) + Chr(231) + Chr(234) + Chr(235) + Chr(232) + Chr(239) + Chr(238) + Chr(197) + Chr(201) + Chr(244) + Chr(251) + Chr(249) + Chr(182) + Chr(230) + Chr(198) + Chr(162) + Chr(163) + Chr(170) + Chr(186) + Chr(189) + Chr(188) + Chr(216) + Chr(177) + Chr(247) + Chr(178) + Chr(167) + Chr(165)
  If (Ansiconvert = #True)
    SRCE  = ANSI
    DEST  = ASCI
  Else
    SRCE  = ASCI
    DEST  = ANSI
  EndIf
  For i = 1 To Len(Text)
    Pos = FindString(SRCE, Mid(Text, i, 1), 1)
    If pos = 0
      TEMP + Mid(Text, i, 1)
    Else
      TEMP + Mid(DEST, Pos, 1)
    EndIf
  Next i
  If TEMP <> ""
    ProcedureReturn TEMP
  EndIf

EndProcedure
Un petit exemple sur l'utilisation

Code : Tout sélectionner

Debug OEMConvert("Fichier t‚l‚charg‚ sur PureBasic", #False)
Debug OEMConvert("Fichier téléchargé sur PureBasic", #True)
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
El Papounet
Messages : 57
Inscription : mer. 09/juin/2010 23:47

Re: Convertisseur Ansi > Ascii et Ansi < Ascii

Message par El Papounet »

Merci sympa, mais pourquoi ne pas utiliser l'API OemToChar et CharToOem ?
Y-a-t-il une différence ?

Code : Tout sélectionner

Define.s Text, Result

Text = "Fichier t‚l‚charg‚ sur PureBasic"
Result = Space(Len(Text))
OemToChar_(@Text, @Result)
Debug Result

Text = "Fichier téléchargé sur PureBasic"
Result = Space(Len(Text))
CharToOem_(@Text, @Result)
Debug Result
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Convertisseur Ansi > Ascii et Ansi < Ascii

Message par case »

les api dépendent d'un OS, la procédure de GallyHC est utilisable quelque soit l'os , jusqu'a preuve du contraire:)
ImageImage
El Papounet
Messages : 57
Inscription : mer. 09/juin/2010 23:47

Re: Convertisseur Ansi > Ascii et Ansi < Ascii

Message par El Papounet »

case a écrit :les api dépendent d'un OS, la procédure de GallyHC est utilisable quelque soit l'os , jusqu'a preuve du contraire:)
Effectivement...
Merci pour le complément d'infos
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Convertisseur Ansi > Ascii et Ansi < Ascii

Message par GallyHC »

Bonjour,

Pour ce code c'est bien une question de multi-os. Donc pas de DLL :)

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Convertisseur Ansi > Ascii et Ansi < Ascii

Message par Geo Trouvpatou »

Salut.

Concernant les valeurs de ASCI et ANSI c'est une norme ou tout simplement l'utilisateur que décide quel caractère remplace tel autre ?

Bye.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Convertisseur Ansi > Ascii et Ansi < Ascii

Message par GallyHC »

Heu oui c une norme donc y a une correspondance... Je l'utilise perso pour mon decompresseur de ZIP et sa me permet d'avoir les é, ect... au lieu de caractere imbitable lollll
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Convertisseur Ansi > Ascii et Ansi < Ascii

Message par Geo Trouvpatou »

Bizarre, j'étais persuadé que c'était l'utilisateur qui choisissait les correspondances.

En tout cas une nouvelle fonction portable équivalente à une API windows, ça ne fait pas de mal.
Répondre