Detecter par le pointeur d'un tableau si il est UNICODE
Publié : mer. 07/oct./2009 15:44
Bonjour a tous.
Devinez de quoi je vais parler ????
De rembrand
Dans une fonction je reçois le pointeur d'un tableau qui m'est envoyé soit de VB, soit de PB
Hors l'un est en unicode, et l'autre en ASCII
Y'a t'il un moyen de detecter le format a coup sur ???
Moi j'avais fais un truc bidon, car j'avais remarqué que quand on essaye de lire de l'UNICODE avec une fonction ASCII on obtenait des "?????"
Alors j'avais mis, "if premier caractere = "?"
Mais ca m'a valu une journée de travail de perdu, car ma comparaison a foiré, et ça m'a induit en erreur, etant sur qu'elle marchait
Merci et bonne journée
Devinez de quoi je vais parler ????

De rembrand

Dans une fonction je reçois le pointeur d'un tableau qui m'est envoyé soit de VB, soit de PB
Hors l'un est en unicode, et l'autre en ASCII
Y'a t'il un moyen de detecter le format a coup sur ???
Moi j'avais fais un truc bidon, car j'avais remarqué que quand on essaye de lire de l'UNICODE avec une fonction ASCII on obtenait des "?????"
Alors j'avais mis, "if premier caractere = "?"
Mais ca m'a valu une journée de travail de perdu, car ma comparaison a foiré, et ça m'a induit en erreur, etant sur qu'elle marchait

Code : Tout sélectionner
Procedure ArrayExe2Local(*strPtr.INTEGER, Array Array2Modify.s(1), ArraySize)
#ArrayPB = 1
#ArrayVB = 2
Global TypeArray
ReDim Array2Modify(ArraySize)
For i = 1 To ArraySize ; Start to 1 for not replace the lengh of array
*strPtr + SizeOf(INTEGER)
If Not TypeArray
Donnee$ = PeekS(*strPtr\i, - 1, #PB_Unicode) ; Array from VB
If Left(Donnee$, 1) = "?"
TypeArray = #ArrayPB
Else
TypeArray = #ArrayVB
EndIf
EndIf
Select TypeArray
Case #ArrayPB
Array2Modify(i) = PeekS(*strPtr\i, - 1, #PB_Ascii)
Case #ArrayVB
Array2Modify(i) = PeekS(*strPtr\i, - 1, #PB_Unicode)
EndSelect
Next
EndProcedure