Mot exact Résultats par page

Index des mots-clés

AGENDA PERSONNEL
ALBUM PHOTO (Script)
ANTI SPAM
APICULTURE
BOISSONS (Recettes)
BREDELE
C++
CADRE
CHARLOTTE AUX FRUITS
CODAGE ADRESSES MAIL
CODE 2 DE 5 ENTRELACE
CODE 3 DE 9
CODE 128
CODE PDF417
CODES BARRE
CODE POSTAL
CODES VIDEOTEXT
CONFITURES
CONGOLAIS
CONSERVES (Recettes)
CORNICHONS AU VINAIGRE
COUARAIL
CUISINE (Bases)
CYBERMUT
DADANT
DATAMATRIX
DDE
DESSERTS (Recettes)
DOUBLE NAT
DYNDNSUPDATE
EAN 13
EAN 128
ELECTRONIQUE
ENTREES (Recettes)
ENVOI DE SMS
ESPACE MEMBRE
EURO
EXEMPLES VB6
FAVORIS
FONCTIONS
FONCTIONS EN C++
GUACAMOLE
IMPRIMANTES RESEAUX
INSTANCE UNIQUE
KIT VB4
LANGSTROTH
LEGUMES (Recettes)
MADELEINES
MAISONS
MAQUEREAUX AU VIN BLANC
MAQUEREAUX (Rillettes)
NMEA
NOUGATINE
PAIN
PDF417
PHP
PIC
PLANS DE MAISON
PATISSERIE (Bases)
PLANTEUR
PLATS COMPLETS (Recettes)
POISSONS (Recettes)
PROCEDURES
PROGRAMMATION
RECETTES DE CUISINE
RESSOURCES RESEAUX
R.I.B.
ROUTINES
RUCHE
SALADES (Recettes)
SAUMON EN CROUTE
SCRIPTS
SITES
SLICE
SMS
SOUPE DE COURGE
TABLE PERIODIQUE
TATIN (Tarte)
USB
VIANDES (Recettes)
VIDEOTEXT
VISUAL BASIC
VOIRNOT
WNTIPCFG

Mot exact Résultats par page
I
N
D
E
X

Le code 3 de 9
 


English version

Ce code simple d'emploi permet le codage de 43 caractères : 10 chiffres, 26 lettres majuscules, les symboles $ % + - . / et l'espace. Le mode étendu permet de coder les 128 caractères ASCII; dans ce mode les caractères ajoutés par rapport au mode "simple" sont codés à l'aide de 2 caractères.

Etudions le mode d'encodage.

Caractère

Valeur

Motif

Caractère

Valeur

Motif

Caractère

Valeur

Motif

0

0

 101000111011101

F

15

101110111000101

U

30

111000101010111

1

1

 111010001010111

G

16

 101010001110111

V

31

100011101010111

2

2

 101110001010111

H

17

 111010100011101

W

32

111000111010101

3

3

 111011100010101

I

18

 101110100011101

X

33

100010111010111

4

4

 101000111010111

J

19

 101011100011101

Y

34

111000101110101

5

5

 111010001110101

K

20

 111010101000111

Z

35

100011101110101

6

6

 101110001110101

L

21

 101110101000111

-

36

100010101110111

7

7

101000101110111

M

22

 111011101010001

.

37

111000101011101

8

8

 111010001011101

N

23

 101011101000111

Espace

38

100011101011101

9

9

 101110001011101

O

24

 111010111010001

$

39

100010001000101

A

10

 111010100010111

P

25

 101110111010001

/

40

100010001010001

B

11

101110100010111

Q

26

101010111000111

+

41

100010100010001

C

12

111011101000101

R

27

111010101110001

%

42

101000100010001

D

13

101011100010111

S

28

101110101110001

 

 

 

E

14

111010111000101

T

29

101011101110001

*

 

100010111011101

Exemple de clé de contrôle pour : ZB65732
35 + 11 + 6 +5 +7 +3 +2 = 69
69 / 43 = 1, reste 26 qui correspond à la lettre Q
Nouveau code avec la clé : ZB65732Q

Le mode étendu.

Les caratéres ne faisant pas partie du mode simple sont codés à l'aide de l'un des 4 préfixe % $ / +  suivi d'un caractère de base selon la table suivante. Pour utiliser littéralement les caratéres qui servent de préfixe ou le symbole * il faudra utiliser un codage sur 2 caractéres

Caractère à produire

Séquence à utiliser

 

Caractère à produire

Séquence à utiliser

 

Caractère à produire

Séquence à utiliser

NUL

%U

 

+

/K

 

V

V

SOH

$A

 

,

/L

 

W

W

STX

$B

 

-

-

 

X

X

ETX

$C

 

.

.

 

Y

Y

EOT

$D

 

/

/O

 

Z

Z

ENQ

$E

 

0

0

 

[

%K

ACK

$F

 

1

1

 

\

%L

BEL

$G

 

2

2

 

]

%M

BS

$H

 

3

3

 

^

%N

HT

$I

 

4

4

 

_

%O

LF

$J

 

5

5

 

`

%W

VT

$K

 

6

6

 

a

+A

FF

$L

 

7

7

 

b

+B

CR

$M

 

8

8

 

c

+C

SO

$N

 

9

9

 

d

+D

SI

$O

 

:

/Z

 

e

+E

DLE

$P

 

;

%F

 

f

+F

DC1

$Q

 

<

%G

 

g

+G

DC2

$R

 

=

%H

 

h

+H

DC3

$S

 

>

%I

 

i

+I

DC4

$T

 

?

%J

 

j

+J

NAK

$U

 

@

%V

 

k

+K

SYN

$V

 

A

A

 

l

+L

ETB

$W

 

B

B

 

m

+M

CAN

$X

 

C

C

 

n

+N

EM

$Y

 

D

D

 

o

+O

SUB

$Z

 

E

E

 

p

+P

ESC

%A

 

F

F

 

q

+Q

FS

%B

 

G

G

 

r

+R

GS

%C

 

H

H

 

s

+S

RS

%D

 

I

I

 

t

+T

US

%E

 

J

J

 

u

+U

SPACE

SPACE

 

K

K

 

v

+V

!

/A

 

L

L

 

w

+W

"

/B

 

M

M

 

x

+X

#

/C

 

N

N

 

y

+Y

$

/D

 

O

O

 

z

+Z

%

/E

 

P

P

 

{

%P

&

/F

 

Q

Q

 

|

%Q

'

/G

 

R

R

 

}

%R

(

/H

 

S

S

 

~

%S

)

/I

 

T

T

 

DEL

%T

*

/J

 

U

U

 

 

 

La création des codes barres.

Maintenant que nous savons créer le motif d'un code barre, il nous reste à le dessiner à l'écran et à l'imprimer sur papier. Deux approches sont possibles :

La plupart des polices pour codes barre 3 de 9 trouvées sur le net (Polices de démonstration incomplètes) sont payantes (Parfois très chères) et de qualité douteuse; la largeur des modules n'étant pas toujours constante dans la définition de la police. J'ai donc décidé de dessiner entièrement une police 3 de 9 et de la proposer en téléchargement. Je l'ai testé sur une imprimante laser en corps 11, ce qui donne un très petit code barre d'environ 1,6 mm de largeur par caractère, résultat : lecture à 100% ! Sur une bonne imprimante à jet d'encre il faut monter au corps 15 ce qui donne des caractères de 2,1 mm de large.

La police " code39.ttf "

Cette police contient les 43 caractères de base et le délimiteur sous le symbole *. Chaque caractère se termine par une barre blanche fine de séparation.

Copiez ce fichier
dans le répertoire des
polices, le plus souvent :
C:\WINDOWS\FONTS

Structure d'un code 3 de 9

Un code barre 3 de 9 sera donc constitué de la manière suivante :

Un petit programme pour tester le mode de base

Voici un petit programme écrit
en Visual Basic 6 ; le fichier
d'installation copiera le
programme, les dépendances Visual
Basic ainsi que les
fichiers sources et la police.

Fichier d'auto-installation :

Fichier ZIP sans installation :

Ce programme de test ne gère ni le mode étendu ni la clé de contrôle.

La fonction Code39$ peut -être réutilisée dans n'importe quel autre programme écrit en Visual Basic 6 ; elle peut également être recopiée telle quelle dans une macro VBA rattachée à un document Excel ou Word.

Public Function Code39$(chaine$)
  'V 1.0.0
  'Paramètres : une chaine
  'Retour : * une chaine qui, affichée avec la police CODE39.TTF, donne le code barre
  '         * une chaine vide si paramètre fourni incorrect
  Dim i%
  Code39$ = ""
  If Len(chaine$) > 0 Then
  'Vérifier si caractères valides
    For i% = 1 To Len(chaine$)
      Select Case Asc(Mid$(chaine$, i%, 1))
      Case 32, 36, 37, 43, 45 To 57, 65 To 90
      Case Else
        i% = 0
        Exit For
      End Select
    Next
    If i% > 0 Then
      Code39$ = "*" & chaine$ & "*"
    End If
  End If
End Function

Fichier Excel de démonstration : et avec Open Office :

Depuis la première parution de cette page, j'ai reçu de nombreuses versions dans différents langages, les voici :

Language

Auteur

 

Visual Foxpro

Emile MAITREJEAN

Delphi

Jean-Camille POPULUS
Francisco FERNANDEZ 



Vous aimez cette page ?

Elle vous est utile ?

Cliquez ici !