IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

[BASIC] Fonction ASC et caractères UNICODE


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 38
    Points
    38
    Par défaut [BASIC] Fonction ASC et caractères UNICODE
    Bonsoir à toutes et à tous,
    La fonction ASC permet de renvoyer la valeur (décimale) d'un caractère UNICODE, donc des valeurs de 16bits.
    Y a t il un moyen de "forcer" cette fonction à ne renvoyer que des valeurs correspondant aux caractères ASCII (soit maximum 255 décimal, ou encore FF hexa, ou bien 8 bits seulement...) ?
    Merci par avance de m'indiquer s'il existe une autre fonction, voire passer par l'API...

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 38
    Points
    38
    Par défaut
    Bonjour,
    alors je vais essayer d'être un peu plus précis sur l'objet de ma demande...
    Dans mon précédent sujet (voir http://www.developpez.net/forums/d11...c/#post6339642), je cherchais à faire fonctioner une DLL avec OpenOffice. Après bien des bidouilles au niveau des types de variables à utiliser dans OpenOffice, je suis arrivé à faire pas mal de chose (j'ai au moins réussi à importer les codes barres stocké dans le scanner...).
    Mais maintenant je bute sur autre chose. La DLL possède une fonction appellée "csp2GetPacket" qui retourne dans une variable de type string (du moins avec OpenOffice) un paquet contenant respectivement la longueur du paquet codée sur un octet, le type de code barre sur un octet, le code barre sur plusieurs octet, et enfin le "time stamp" de 4 octets. J'arrive à lire et décoder toutes ces infos, sauf le time stamp...
    J'ai obtenu par exemple 4 octets de valeur hexa E9-95-B0-8C, donc une chaine "é•°Œ" (valeur vérifiée avec un programme exemple fourni avec la DLL)
    Moi j'ai besoin d'extraire les valeurs "hexa" (ou décimales) de la chaine, donc j'ai pensé utiliser bêtement la fonction ASC en parcourant la chaine octets par octets (fonction MID)...
    Hors, problème, il se trouve que pour la valeur hexa 95, la fonction me retourne une valeur décimale de "8226", soit hexa 2022, ce qui correspond au même caractère "•" mais en UNICODE ! Idem pour "Œ", la fonction me retourne la valeur UNICODE hexa 0152... J'avoue que j'en perd mon "Latin"
    Comment forcer la fonction ASC à interpréter dans des valeurs ASCII ???

    EDIT : en fait je viens de découvrir que ce fonctionnement provient de la page de code "1252" : http://ascii-table.com/codepage.php?1252

    Je ne pense pas être le premier à être confronté au problème
    N'y a t il pas une API windows que je puisse appeller depuis oOo qui me permettrait d'obtenir une conversion ?

Discussions similaires

  1. [JDOM] caractère unicode de fin de ligne
    Par iceman dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 31/03/2009, 03h15
  2. Condition en fonction du premier caractére?
    Par thibaut06 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/02/2006, 02h52
  3. Réponses: 2
    Dernier message: 15/10/2005, 23h29
  4. Réponses: 4
    Dernier message: 14/10/2005, 09h15
  5. [CR8.5] caractères unicode
    Par Milou79 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2004, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo