Bijour,
je recherche un moyen simple pour vérifier une stucture de type ansi ou unicode
je crée quelque structure de type ANSI et en faisant appel au fonction (non modifié) d'autoit qui sont la plupart en UNICODE çà bug (normal).
Au debut j'utilisait la macro unicode, dans les fonctions mais çà va pas non plus.
Y a une soluce ?
[..] Detection Ansi ou Unicode
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Detection Ansi ou Unicode
Qu'appelles-tu "structure" ? Peux-tu poster un exemple concret ?
S'il s'agit de déterminer si une chaîne ou un fichier texte est en ANSI ou en Unicode (UTF8) il n'y a pas de solution en général, car tout fichier ou chaîne UTF8 est une chaîne ANSI valide (l'inverse n'est pas vrai) indépendemment de la page de code (codepage) en vigueur.
Si tu imposes des conditions particulières sur le contenu, il y a peut-être une possibilité.
S'il s'agit de déterminer si une chaîne ou un fichier texte est en ANSI ou en Unicode (UTF8) il n'y a pas de solution en général, car tout fichier ou chaîne UTF8 est une chaîne ANSI valide (l'inverse n'est pas vrai) indépendemment de la page de code (codepage) en vigueur.
Si tu imposes des conditions particulières sur le contenu, il y a peut-être une possibilité.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
-
ani
- Niveau 11

- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Re: [..] Detection Ansi ou Unicode
Un exemple
comment puis-je savoir si la structure est de type ANSI ou UNICODE.
Sachant qu'ici c'est de l'ANSI
et aussi pourquoi le ptr de la structure n'est pas static sous seven ? y a t'il une autre methode ?
merci
Code : Tout sélectionner
$iMsg = "Bijour Ani"
$Len = StringLen($iMsg) + 1
$tA = DllStructCreate("char msg[" & $Len & "]")
DllStructSetData($tA,"msg",$iMsg)
$pA = DllStructGetPtr($tA)
consolewrite($pA)
$tA = 0Sachant qu'ici c'est de l'ANSI
et aussi pourquoi le ptr de la structure n'est pas static sous seven ? y a t'il une autre methode ?
merci
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Detection Ansi ou Unicode
Tu peux t'inspirer de ce que j'utilise pour faire un dump d'une variable :
avec l'include :
L'idée est de sauvegarder le premier caractère de l'élément considéré, d'y écrire un caractère qui ne figure dans aucun jeu ANSI et voir si on relit le caractère Unicode écrit (dans ce cas c'est du wchar[xxx]) ou si on relit ? ce qui veut dire qu'on a affaire à du char[xxx].
Je fais de même pour différencier les champs byte, short, ushort, int, uint, int64.
Mais je ne comprends pas la partie "pointeur statique". L'adresse (figée) de la structure est affichée par mon dump et elle ne change pas spontanément (encore heureux !).
Code : Tout sélectionner
#include "..\include\dump.au3"
#include <string.au3>
Local $t = DllStructCreate("char[15];wchar[15]")
DllStructSetData($t, 1, "Chaîne ANSI")
DllStructSetData($t, 2, "Chaîne UCS2")
ConsoleWrite(_VarDump($t) & @LF)► Afficher le texte
Je fais de même pour différencier les champs byte, short, ushort, int, uint, int64.
Mais je ne comprends pas la partie "pointeur statique". L'adresse (figée) de la structure est affichée par mon dump et elle ne change pas spontanément (encore heureux !).
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
-
ani
- Niveau 11

- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Re: [..] Detection Ansi ou Unicode
Pour la partie static, sous xp avec le code du dessus il me renvoie un pointeur (ex:0x01C41590 ~ 9015C401), que je peut inserer directement elle ne change pas, mais sous Seven elle deviend dynamique et là je comprend pas (3.3.6.x)
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Detection Ansi ou Unicode
Tu veux dire que l'adresse change à chaque lancement ? Bah, c'est normal et inévitable.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
