Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
Publié : mer. 14/sept./2016 13:05
ouaip , tain les nazes !! 

Forums PureBasic - Français
https://www.purebasic.fr/french/
Plus vraiment ...pour une fois que j'aurais pu être utileZorro a écrit :ps : si quelqu'un d'autre a XP chez lui (KCC ??? )
Je dirais même plus ...ouaip , tain les nazes !!
Nonps : si quelqu'un d'autre a XP chez lui (KCC ??? )
testez ce code vous devriez avoir l'affichage de ce caractere : "░" dans le débugger !! ?? (en compilant Pb 5.50 32 bits)
Code : Tout sélectionner
;
Declare.s ascii_sous_unicode(monmessageansi.s)
;
; debug Ascii_sous_unicode(chr(176) ) ; respecte les accents
;
OpenConsole("test")
For i=1 to 255
print (Ascii_sous_unicode(chr(i)))
Next i
Input()
CloseConsole()
Procedure.s Ascii_sous_unicode(MonMessageANSI.s)
MonMessageASCII.s = space(Len(MonMessageANSI.s))
;CharToOem_(@MonMessageANSI.s, @MonMessageASCII.s)
OemToChar_(@MonMessageANSI.s, @MonMessageASCII.s)
ProcedureReturn MonMessageASCII.s
EndProcedure
; Epb
VoilàZorro a écrit :tu peux tester ce code ? (compilation Pb 5.50 32bits )
C'est un vrai XP Pro avec licence, installé depuis un CD officiel avec numéro de série officiel enregistré. etc.Zorro a écrit :ps : mais bon j'aurai préféré un teste sur un vrai XP ...
Pareil.Zorro a écrit :et a tout hasard essaye la ligne commenté CharToOem
Code : Tout sélectionner
; modifié Zorro
Enumeration
#Win
#list
EndEnumeration
Declare.s Ascii_sous_unicode(MonMessageANSI.s)
Enumeration
#Font
EndEnumeration
LoadFont(#font,"Lucida",10)
SetGadgetFont(#PB_Default, FontID(#font))
debug Ascii_sous_unicode(chr(203) ) ; respecte les accents
OpenWindow(#Win , 0, 0, 880, 500, "ascii...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(#list, 0, 0, 880, 500, "0..31", 110,#PB_ListIcon_GridLines)
AddGadgetColumn(#list, 1, "32..63", 110)
AddGadgetColumn(#list, 2, "64..95", 110)
AddGadgetColumn(#list, 3, "96..127", 110)
AddGadgetColumn(#list, 4, "128..159", 110)
AddGadgetColumn(#list, 5, "160..191", 110)
AddGadgetColumn(#list, 6, "192..223", 110)
AddGadgetColumn(#list, 7, "224..255", 110)
ii.s=chr(10)
For i=0 To 31
i$=Ascii_sous_unicode(chr(i))
i2$=Ascii_sous_unicode(chr(i+32))
i3$=Ascii_sous_unicode(chr(i+64))
i4$=Ascii_sous_unicode(chr(i+96))
i5$=Ascii_sous_unicode(chr(i+128))
i6$=Ascii_sous_unicode(chr(i+160))
i7$=Ascii_sous_unicode(chr(i+192))
i8$=Ascii_sous_unicode(chr(i+224))
AddGadgetItem(#list, -1,Str(i)+" "+i$+ii.s+Str(i+32)+" "+i2$+ii.s+ Str(i+64)+" "+i3$+ii.s+ Str(i+96)+" "+i4$+ii.s+ Str(i+128)+" "+i5$+ii.s+ Str(i+160)+" "+i6$+ii.s+ Str(i+192)+" "+i7$+ii.s+Str(i+224)+" "+i8$+#LF$)
Next i
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Procedure.s Ascii_sous_unicode(MonMessageANSI.s)
MonMessageASCII.s = space(Len(MonMessageANSI.s))
;CharToOem_(@MonMessageANSI.s, @MonMessageASCII.s)
OemToChar_(@MonMessageANSI.s, @MonMessageASCII.s)
ProcedureReturn MonMessageASCII.s
EndProcedure
; Epb
...Zorro a écrit :et maintenant a tout hasard essaye celui la
Minimum supported client
Windows 2000 Professional [desktop apps only]
Code : Tout sélectionner
String = PeekANSI(*A, FindMemoryByte(*A, 0) - *A)