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

Delphi Discussion :

Lecteur code à barres affiches des caractères spéciaux ?


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 247
    Points : 62
    Points
    62
    Par défaut Lecteur code à barres affiches des caractères spéciaux ?
    Bonsoir;
    mon lecteur code à barres affiche des caractères spéciaux quand le clavier est "azerty" mais fonctionne normale si le clavier est "qwerty"
    comment puis-je lire le code à barres sans changer la langue du clavier en "ENG" ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 339
    Points
    13 339
    Par défaut
    Ca se fait au niveau du lecteur. Tu devrais avoir reçu une notice avec incluant des codes à scanner pour modifier sa config.

  3. #3
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 802
    Points : 1 051
    Points
    1 051
    Par défaut
    Je confirme, tu dois définir la langue dans les paramètres de ta « douchette » !

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 247
    Points : 62
    Points
    62
    Par défaut
    je vais voir

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 247
    Points : 62
    Points
    62
    Par défaut
    bonsoir et désolé pour l'absence; la notice du lecteur n'a pas de configuration de la langue, et je crois qu'il existe une méthode pour lire le code à barres sans changer la langue du système d'exploitation par ce que j'ai utilisé une application qui lis le code à barres correctement avec ce lecteur et la lecture dans le bloc notes donne une lecture avec caractères spéciaux.
    normalement il existe un code qui détecte la lecture du lecteur et le convertir.

  6. #6
    Invité
    Invité(e)

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    le lien ci-dessus concernait les QRCode et la discussion était particulière poussive, cela n'aidera pas messahel mais le code ci-dessus peut être intéressant, il peut résoudre un problème de translation de clavier (touche virtuelle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    procedure SwitchCharLayout(var Key :char; aKeyboardLayout :dword = $409);
    var
      KL       :hKL;
      Data     :word;
      VK       :byte;
      Shift    :boolean;
      ScanCode :byte;
      KeyState :TKeyboardState;
      Output   :string;
     
    begin
      KL := LoadKeyboardLayout(IntToHex(aKeyboardLayout, 8), 0);
     
      // Décodage complet pour le traitement maj/min, VK seul pas suffisant
      Data  := VkKeyScan(Key);
      VK    := Lo(Data);
      Shift := Hi(Data) and 1 = 1;
     
      ZeroMemory(@KeyState, SizeOf(KeyState));
      KeyState[VK] := $80;
      if Shift then KeyState[VK_SHIFT] := $80;
     
      ScanCode := MapVirtualKey(VK, MAPVK_VK_TO_VSC);
      VK       := MapVirtualKeyEx(ScanCode, MAPVK_VSC_TO_VK, KL);
     
      SetLength(Output, 10);
      SetLength(Output, ToUnicodeEx(VK, ScanCode, KeyState, PChar(Output), Length(Output), $4, KL));
     
      if Length(Output) > 0
      then Key := Output[1]
      else Key := #0;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      SwitchCharLayout(Key);
    end;


    une application qui lis le code à barres correctement avec ce lecteur
    Dommage de ne pas indiquer laquelle, savoir que cela existe mais sans plus de détail ne nous sert pas à grand chose.


    Au final, tu reçois quoi ?
    Un exemple serait intéressant, la version ENG et FR
    On peut supposer qu'en "qwerty", les codes clavier sont correctement traduit mais en "azerty", les codes claviers sont non décodés, tu obtiens le caractère à l'emplacement "azerty" mais qui correspond à une lettre en "qwerty"

    Une douchette sans livret pour changer le charset, c'est de la véritable camelote, c'est un peu la base, pourquoi s'équiper d'un si mauvais matériel ?

    Il te faut détecter le clavier en cours, GetKeyboardLayout, si 0000040C c'est le FR-fr, il faut se faire une table de correspondance

    voici une fonction tapée sur le forum et non testée, ça devrait t'inspirer :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function QwertyToAzerty(const S: string): string;
    const
      AZERTY = 'aAqQwWzZ,?mM'; // Faut peut-être ajouter + '1234567890'
      QWERTY = 'qQaAzZwWmM;:'; // en théorie + '!@#$%^&*()' 
    var
      I, K: Integer;
    begin
      Result := S;
      for I := 1 to Length(Result) do
      begin
        K := Pos(S[I], QWERTY);
        if K >= 1 then
          Result[S] := AZERTY[K];
      end;
    end;
    Evidemment, c'est dans l'idée que si ta douchette lit a et que cela affiche q à la place, idem pour le reste, peut-être que la table de correspondance est différence, il suffit de tester tous les caractères dont tu as besoin pour trouver la table source.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 504
    Points : 2 773
    Points
    2 773
    Billets dans le blog
    10
    Par défaut Si tu as la marque et le modèle
    Si tu as la marque et le modèle on a peut être le manuel

Discussions similaires

  1. Lecteur code barre et Access 2000
    Par DMboup dans le forum Access
    Réponses: 11
    Dernier message: 17/06/2006, 14h05
  2. [Débutant][PS2] Communication avec lecteur code-barre
    Par FreeCake dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/02/2006, 15h14
  3. [Comm]Lecteur code barre
    Par nicotine002 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 31/12/2005, 18h44
  4. comment lire apartir d'un lecteur code barre
    Par saim mohamed dans le forum Langage
    Réponses: 4
    Dernier message: 12/09/2005, 10h57
  5. [HARDWARE] [Conseil] Lecteur code barre
    Par Ni(o dans le forum Périphériques
    Réponses: 4
    Dernier message: 22/06/2004, 19h14

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