PureBasic

Forums PureBasic
Nous sommes le Jeu 12/Déc/2019 9:51

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 72 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5  Suivante
Auteur Message
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 13:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2113
ouaip , tain les nazes !! :lol:

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 13:22 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6661
Localisation: Isere
Zorro a écrit:
ps : si quelqu'un d'autre a XP chez lui (KCC ??? )
Plus vraiment ...pour une fois que j'aurais pu être utile :oops:
Il me reste des machines en XP mais ce n'est plus ma principale, j'ai trouvé un super systeme "ToutDansUn" qui va pas mal pour le remplacer :mrgreen:

Citation:
ouaip , tain les nazes !!
Je dirais même plus ...
Image
ouaip , tain les pures nazes !!

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 16:08 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1641
Citation:
ps : 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)

Non :|

(XP Pro (dans une VM) sans aucune autre police installée)

_________________
Windows 10 Famille x64 + Linux (Slackware, Debian sur Oracle VirtualBox 6.0), Raspberry Pi


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 16:46 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2113
ouaip, c'est chelou quand meme

tu peux tester ce code ? (compilation Pb 5.50 32bits )

Code:
;
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



chez moi ça affiche :

Image


ps : mais bon j'aurai preféré un teste sur un vrais XP ...

et a tout hasard essaye la ligne commenté CharToOem

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 17:02 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1641
Zorro a écrit:
tu peux tester ce code ? (compilation Pb 5.50 32bits )

Voilà
(et la fenêtre de debug de ton exemple précédent ramenée par dessus)
Image

Zorro a écrit:
ps : mais bon j'aurai préféré un teste sur un vrai XP ...
C'est un vrai XP Pro avec licence, installé depuis un CD officiel avec numéro de série officiel enregistré. etc. :)
Le fait qu'il soit installé dans une VM (VirtualBox 5) ne change rien à son fonctionnement interne. Il n'a pas conscience du système hôte.

Zorro a écrit:
et a tout hasard essaye la ligne commenté CharToOem
Pareil.

:wink:

_________________
Windows 10 Famille x64 + Linux (Slackware, Debian sur Oracle VirtualBox 6.0), Raspberry Pi


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 17:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2113
haaa mais là c'est pas pareil !! :D

tu me demontre qu'en mode console mon code fonctionne tres bien sous XP !!
tout les caracteres graphique apparaissent , comme sous Seven !!

seul le debugger PB sous XP semble avoir un probleme ....et ne pas afficher le caractere
il est possible que le debugger PB sous windows plante a ce niveau ....(probleme de drapeau unicode au niveau compilateur ? )


mais du moment que ça marche en console, ça montre bien que la fonte existe et est bien compatible !!!
tout les caracteres graphique apparaissent , comme sous Seven !! :) (et comme sous DOS)


et maintenant a tout hasard essaye celui la

Code:
; 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



_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Dernière édition par Zorro le Jeu 15/Sep/2016 8:30, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 17:24 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1641
Zorro a écrit:
et maintenant a tout hasard essaye celui la

...

Image

PS. Pour ton premier exemple j'avais aussi fait l'essai en utilisant le fonte Consolas (installé exprès): même résultat.

_________________
Windows 10 Famille x64 + Linux (Slackware, Debian sur Oracle VirtualBox 6.0), Raspberry Pi


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 17:26 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2113
Merci :)

bon ça plante .... mais pas en mode console .... !!! cherchez l'erreur

peut etre l'api utilisé ....

Citation:
Minimum supported client
Windows 2000 Professional [desktop apps only]

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Dernière édition par Zorro le Mer 14/Sep/2016 17:30, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 17:30 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1641
J'ai aussi changé la police utilisée par le débug (graphique) sans effet avec les polices fournies.

_________________
Windows 10 Famille x64 + Linux (Slackware, Debian sur Oracle VirtualBox 6.0), Raspberry Pi


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 17:32 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2113
c'est je pense un probleme de selection de page de code
j'avais vu passer un code a ce sujet... faudrai qu je recherche

ce code , de memoire, permettait le choix de la page de code (850,1252 ect...)

explication ici :
https://msdn.microsoft.com/en-us/librar ... 56(v=vs.85).aspx

de toute façons, tout ceci est obsolète ,en PB on utilise l'unicode le UTF8, et ça roule !
qu'elle idée d'utiliser des caractères désués (bon il marche ne console c'est deja ça ... )

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 18:40 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4225
Localisation: Arras, France
C'est quand je vois ce genre de sujet que j'ai l'impression d'être un dinosaure. (Attention souvenirs de vieux combattant) Que de temps passé, que de travail sur des problèmes de normes, de choix industriels foireux, avec le DOS et ses pages de codes débiles, l'ASCII bancal qui hésitait entre texte et codes de commande (beep ! ), les terminaux genre Minitel et l'ANSI mode BBS avec ses astuces de sioux Esc[s;Esc[u; et aujourd'hui l'unicode qui n'en finit pas de devenir un standard et qui au final ne l'est plus du tout ..


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 19:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2113
c'est clair qu'il y a de quoi perdre son latin :)
c'est une forme d'obsolescence programmé !

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Mer 14/Sep/2016 22:49 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Je vais t'en faire une obsolescence programmée...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Jeu 15/Sep/2016 0:07 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Il manque donc une ligne entre "Else" et "EndIf". C'est celle-là qu'il suffit juste d'insérer :
Code:
String = PeekANSI(*A, FindMemoryByte(*A, 0) - *A)
Elle évite de devoir préciser la taille de la chaîne ASCII.
Je n'ai pas le temps nécessaire pour mettre à jour le code. Je relis le sujet, j'y vois beaucoup de superflu hors sujet. Je tâcherai de perdre (et faire perdre) un précieux temps à le nettoyer.

On a donc au final un système d'affichage qui importe de l'ASCII dans un programme Unicode, avec un exemple utilisant une fonte "lucida" quasi-omniprésente sur la plupart des OS, et quasi-complète (il manque 16 caractères étendus locaux, c'est-à-dire propre à chaque pays).

Cela permet d'exécuter d'anciens programmes à affichage "texte" et de les voir afficher sur nos écrans actuels avec tous les avantages techniques desquels l'on dispose (changement d'échelle, impression digne de ce nom, incrustation graphique, etc...)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PeekANSI() - Lire de l'ASCII accentué en Unicode
MessagePosté: Jeu 15/Sep/2016 8:05 
Hors ligne

Inscription: Sam 23/Fév/2008 17:58
Messages: 556
Bonjour à tous

Pour résumer, le codage des caractères en informatique et en télécommunication, est l’opération qui associe une table de codage comprenant toute la combinatoire possible et une police de représentation. C’est ce qu’on appelle un jeu de caractères. Afin d’éviter une floraison de jeux de caractères, des standards ont été crées (jeux de caractères codés.) On peut de cette manière cacher le sens de l'information, soit en créant une table de codage particulière soit en créant un police particulière (voir chiffrement)

Les problèmes d'encodage de caractères sont apparus dès que des encodages EBCDIC et ASCII sont apparus dans les années 1960.
La mise en réseau de divers matériels électroniques utilisant des conventions différentes pour le codage des caractères a accentué le problème.
Toutefois, avec l'émergence d'Unicode, et celle d'indicateurs d'encodage, le problème pourrait se réduire à un problème d'interopérabilité.
Voici les types de jeux de caractères codés utilisés par pays

Jeux de caractères codés populaires, par pays
Sur Internet, l'UTF-8 et l'ASCII sont les deux encodages les plus populaires depuis 20109. En juillet 2012, leur utilisation est estimée conjointement à 80 % (UTF-8: 65 % et ASCII: 15 %), contre 10 % environ pour les encodages occidentaux (latin1) et le solde (< 10 %) pour tous les autres.
Amérique
États-Unis
• ISO 646 ;
o ASCII.
Canada
• ASCII, standard de compatibilité, sans accent ;
• ISO 8859-1 ;
• Unicode, voir aussi UTF-8.
Europe
Union européenne
• UTF-8, notamment utilisé par http://www.europa.eu/.
France
• ISO 646-variante de référence internationale (IRV, alias ASCII), standard de compatibilité, sans accent, pour le développement de logiciel en anglais ;
• « Jeu de caractères graphiques français pour la langue française », 94 caractères codés sur 7 bits, normalisé ISO/CEI 646-69 le 1er juin 1983, et normalisé AFNOR NF Z 62 010 en 1982. Aujourd'hui désuet, mais activable par séquence d'échappement ;
o standard de compatibilité ;
o dans l'une de ses deux variantes françaises (AFNOR) ;
o standard du minitel (voir viewdata) ;
• ISO-2022 peu utilisé en France mais reprend tous les caractères français ;
• CP850 à l'époque du DOS ;
• Windows-1252, originaire de Microsoft Windows, encore appelé CP1252 ou Ansinew ;
• ISO 8859-1, avant l'euro ;
• ISO 8859-15, après l'euro ;
• Unicode, voir aussi UTF-8 (reprend tous les caractères des jeux de code précédent).
Grèce
• UTF-8 ;
• ISO 8859-7 (sans l’euro).
Roumanie
• ISO 8859-2 ;
• ISO 8859-16 ;
• UTF-8.
Lituanie
• Windows-1257, pour Windows, utilisé par http://www.lrv.lt/ ;
• UTF-8, utilisé pour la langue française par http://www.president.lt/fr/.
Russie
• KOI8-R ;
• UTF-8.
Ukraine, Bulgarie
• KOI8-U ;
• UTF-8.
Afrique
Maghreb
• UTF-8, utilisé sur http://www.maroc.ma/portailinst/Ar ;
• Windows-1256, utilisé par exemple par http://www.almaghribia.ma/.
Asie
• ISCII (alphasyllabaires utilisés en Inde, au Sri Lanka et au Bangladesh) ;
• VISCII (alphabet latin moderne du vietnamien) ;
• TIS-620 (écriture thaïe) ;
• KSC 5601 (alphabet hangûl du coréen) ;
• GB18030 (écriture sinographique simplifiée des langues chinoises) ;
• Big5 (écriture sinographique traditionnelle des langues chinoises) ;
• Shift-JIS (syllabaires et écriture sinographique traditionnelle des langues japonaises).
Autres codages de caractères populaires
• Codage SMS ;
• ISO 646 : ASCII ;
• EBCDIC ;
• ISO 8859 : ISO 8859-1, ISO 8859-2, ISO 8859-3, ISO 8859-4, ISO 8859-5, ISO 8859-6, ISO 8859-7, ISO 8859-8, ISO 8859-9, ISO 8859-10, ISO 8859-11, ISO 8859-13, ISO 8859-14, ISO 8859-15, ISO 8859-16 ;
• Jeux de caractères codés DOS : CP437, CP737, CP850, CP852, CP855, CP857, CP858, CP860, CP861, CP863, CP865, CP866, CP869 ;
• Jeux de caractères codés Windows : Windows-1250, Windows-1251, Windows-1252, Windows-1253, Windows-1254, Windows-1255, Windows-1256, Windows-1257, Windows-1258 ;
• VISCII ;
• KOI8-R, KOI8-U ;
• TIS-620 ;
• ISCII ;
• ISO 2022, EUC ;
o Big5 : HKSCS ;
o Guobiao : GB2312, GBK, GB18030 ;
o Shift-JIS ;
• ISO/CEI 10646 : Unicode, voir aussi UTF-8.

_________________
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 72 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye