Partagez votre expérience de PureBasic avec les autres utilisateurs.
GallyHC
Messages : 1708 Inscription : lun. 17/déc./2007 12:44
Message
par GallyHC » mar. 20/juil./2010 19:19
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
Message
par El Papounet » mar. 20/juil./2010 22:23
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
case
Messages : 1546 Inscription : lun. 10/sept./2007 11:13
Message
par case » mar. 20/juil./2010 23:18
les api dépendent d'un OS, la procédure de GallyHC est utilisable quelque soit l'os , jusqu'a preuve du contraire:)
El Papounet
Messages : 57 Inscription : mer. 09/juin/2010 23:47
Message
par El Papounet » mar. 20/juil./2010 23:48
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
GallyHC
Messages : 1708 Inscription : lun. 17/déc./2007 12:44
Message
par GallyHC » mer. 21/juil./2010 8:36
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
Message
par Geo Trouvpatou » mer. 21/juil./2010 19:17
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.
GallyHC
Messages : 1708 Inscription : lun. 17/déc./2007 12:44
Message
par GallyHC » mer. 21/juil./2010 22:42
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
Message
par Geo Trouvpatou » jeu. 22/juil./2010 17:51
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.