You are on page 1of 30

ESAT-DI [LRE] page XV-1

Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-


indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

II

III

IV

VI

VII

VIII

IX

XI

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 1


ESAT-DI [LRE] page XV-2
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

XII

XIII

XIV

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 2


ESAT-DI [LRE] page XV-57
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

XV Les fichiers en organisation séquentielle indexée

XV.A Principe

XV.B

XV.C

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 57


ESAT-DI [LRE] page XV-58
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

XV.D Vidage physique

XV.D.1 le format IDXFORMAT « 4 »

XV.D.1.1 LE FICHIER DES DONNEES :

structure du fichier des données

schéma de principe :

LE FICHIER DES DONNEES

FILE HEADER RECORD

R.H RECORD N°1

R.H RECORD N°2


.
.
.
R.H RECORD N°2
+EVENTUELLEMENT

R.H RECORD SYSTEM

R.H RECORD SYSTEM


+EVENTUELLEMENT
R.H FREE SPACE RECORD

détails techniques :

Le fichier des données d’un fichier séquentiel-indexé a le même format qu’un séquentiel en format variable (comme si dans la phrase SELECT
on avait mis ORGANIZATION SEQUENTIAL ET RECORDING MODE V ou comme si on avait utilisé la directive de compilation
CALLFH) : on peut d’ailleurs ne prendre que le fichier des données et le traiter comme un séquentiel en ignorant le fichier des index.

Les articles sont supprimés logiquement (lors d’un DELETE , les champs ne sont pas mis à zéro binaire mais l’en-tête d’article indique que
celui-ci a été effacé).

L’espace libéré par les suppression est réutilisable :

en format fixe , l’adresse des emplacements libres se trouvent dans un FREE SPACE RECORD dans le fichier des index.
en format variable , l’information se trouve dans un article « système » dans le fichier des données. (=> qui a les 4 premiers bits de
son en-tête à la valeur 0001 ou 0011).
[NB: l’article FREE-SPACE pour les données et pour les index dans le fichier des index a le même format]

En format variable , tous les (slots) créneaux ou zones disponibles ont une taille multiple de 4 bytes.
Ces créneaux d’espace libre correspondent à des articles qui ont été supprimés.
Tous les créneaux disponibles de même longueur sont gèrés ensemble.
Chaque créneau disponible est chaîné au suivant [principe des listes chaînées] (il contient l’adresse du suivant de même longueur sur
les 4 premiers bytes après l’en-tête d’article ; le dernier pointe sur l’adresse 0).
L’adresse du premier élément pour chaque longueur de créneau diponible est rangée dans le DATA-FREE-SPACE-RECORD du
fichier des données .
desription du DATA FREE SPACE RECORD

offset taille contenu

0 4 en-tête d’article
2/4 4 offset du premier créneau libre de 8 bytes.
6/8 4 offset du premier créneau libre de 12 bytes
N 4 offset du premier créneau libre de x*4 bytes
Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 58
ESAT-DI [LRE] page XV-59
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

Remarques sur le fichier étudié

On a pris , pour étudier le vidage physique , le fichier séquentiel-indexé suivant :

environment division.
input-output section.
file-control.
select fmodif assign to "c:\laf\cobol\indexe\modif.dat".
select fcadres assign to "c:\laf\cobol\indexe\cadres.don"
organization indexed
access dynamic
record key is btph
alternate record key bnom with duplicates
alternate record key bgrade with duplicates
alternate record key bfonction with duplicates
alternate record key bservice with duplicates
alternate record key bsite with duplicates
file status wst.
DATA DIVISION.
file section.

fd fcadres.
1 benreg.
3 btph pic xxxx.
3 bgrade pic xxxx.
3 bnom.
5 bdeb-nom pic xx.
5 pic x(23).
3 bprenom pic x(20).
3 bfonction pic x(30).
3 bservice pic x(30).
3 bsite pic x(20).

Il contient les informations concernant un annuaire téléphonique (n°de poste


téléphonique = clé primaire ,grade,nom,prénom,fonction,service,site géographique).

Au départ ,il contenait un certain nombre d’enregistrements (NB :ce jeu d’essai est
différent de ceux étudiés dans les exemples du paragraphe C) ; on a supprimé les
articles ayant pour clé primaire :3246,3552,3556,3558,3869,5203 et on a créé les
articles 3411,5207,3201 puis on a édité le vidage physique.

Implicitement en cobol micro-focus , il est en format BTRIEVE (IDXFORMAT« 4 »)

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 59


ESAT-DI [LRE] page XV-60
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

Vidage physique du fichier des données


FILE-HEADER-RECORD = 128 bytes
secteur 0000000
0000(0000) 307E000000000000 3937313030383037 0~......97100807
0016(0010) 3535353332393937 3130303830373535 5553299710080755
0032(0020) 35333239003E0002 0000000000000000 5329.>..........
0048(0030) 0100000000000000 0085000000850000 .........à...à..
0064(0040) 0000000000000000 0000000004000000 ................
0080(0050) 0000000000000000 0000000000000000 ................
0096(0060) 0000000000000000 000000004100202E ............A. .
0112(0070) 0000000000000000 0000000000000000 ................

caractère n° 0 sur une longueur de 4 : longueur du file-header


caractère n°39 sur une longueur de 1 : organisation du fichier : 1=seq ; 2=indexed ; 3=relative
caractère n° 41 sur une longueur de 1 : n° de routine de compression
0 pas de compression
1 cbldc001
2 à 127 reservé
128 à 255 n° de routine utilisateur
caractère n° 43 sur une longueur de 1 : format du fichier
0=dedault
1=C-ISAM
2=LEVEL II COBOL
3 indexed file format utilisé par ce cobol
4=IDXFORMAT « 4 »
caractère n°48 sur une longueur de 1 : recording mode : 0= format fixe ; 1= format variable
caractères n°56 et 60 sur une longueur de 2 : taille maxi et minimum de l’article (ici = 85 = 133 bytes)
premier article

0128(0080) 2085333234367363 68204D4952414D4F à3246sch MIRAMO


0144(0090) 4E2F444556494C4C 4520202020202020 N/DEVILLE
0160(00A0) 20202064616D6965 6E6E652020202020 damienne
0176(00B0) 2020202020202073 7570657276697365 supervise
0192(00C0) 7572206D696E6572 7665202020202020 ur minerve
0208(00D0) 2020202020648274 616368656D656E74 détachement
0224(00E0) 2035382072742020 2020202020202020 58 rt
0240(00F0) 202020436573736F 6E2D73827669676E Cesson-sévign
0256(0100) 8220202020202000 4085333331306D61 é .@à3310ma
0272(0110) 6A204A414F55454E 2020202020202020 j JAOUEN
0288(0120) 2020202020202020 2020206265726E61 berna
0304(0130) 7264202020202020 202020202020206F rd o

Chaque article a un en-tête sur 2 caractères (ici 2085 ou 4085 ) qui comprend sur les 4 premiers bits , la nature de l’enregistrement et
sur les 12 suivants sa longueur.

signification des 4 premiers bits de l’en-tête :

« 1 » ou 0001 => il s’agit d’un article système (pour format IDXFORMAT4 seulement) qui contient des informations sur les
occurrences dupliquées dans le fichier des données.
« 2 » ou 0010 => il s’agit d’un article effacé (disponible pour une nouvelle création)
2085 =>cet article n’existe plus
« 3 » ou 0011 => article système
« 4 » ou 0100 => Article utilisateur valide => 4085 =>cet article existe
« 5 » ou 0101 => article utilisateur réduit (indexé seulement) : les 16 bits suivant immédiatement les données contiennent
le nombre de caractères de padding à insérer avant l’article suivant.
« 6 » ou 0110 => article pointeur (indexé seulement)
« 7 » ou 0111 => article utilisateur référencé par un article pointeur.
« 8 » ou 1000 => article utilisateur réduit référencé par un pointeur.

0320(0140) 6666696369657220 6D20632073202020 fficier m c s

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 60


ESAT-DI [LRE] page XV-61
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

0336(0150) 2020202020202020 2020202020646761 dga

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 61


ESAT-DI [LRE] page XV-62
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

0352(0160) 722F63732F73612F 6361742020202020 r/cs/sa/cat


0368(0170) 2020202020202020 202020436573736F Cesso
0384(0180) 6E2D73827669676E 8220202020202080 n-sévigné Ç
0400(0190) 4085333332307031 20204144414D2020 @à3320p1 ADAM
0416(01A0) 2020202020202020 2020202020202020
0432(01B0) 2020206D69636865 6C20202020202020 michel
0448(01C0) 2020202020202062 726F63686575722D brocheur-
0464(01D0) 656E2D6368656620 2020202020202020 en-chef
0480(01E0) 2020202020646761 722F63732F73612F dgar/cs/sa/
0496(01F0) 7069612020202020 2020202020202020 pia

secteur 0000001
0000(0000) 202020436573736F 6E2D73827669676E Cesson-sévign
0016(0010) 8220202020202080 4085333332387367 é Ç@à3328sg
0032(0020) 74204C4142415420 2020202020202020 t LABAT
0048(0030) 2020202020202020 2020206572696320 eric
0064(0040) 2020202020202020 2020202020202063 c
0080(0050) 656C6C756C652065 6666656374696673 ellule effectifs
0096(0060) 20636F6E74696E67 656E742020646761 contingent dga
0112(0070) 722F63732F622E70 6572732020202020 r/cs/b.pers
0128(0080) 2020202020202020 202020436573736F Cesso
0144(0090) 6E2D73827669676E 8220202020202080 n-sévigné Ç
0160(00A0) 4085333336326363 6820414E4452452F @à3362cch ANDRE/
0176(00B0) 4D415254494E4F20 2020202020202020 MARTINO
0192(00C0) 202020656D696C69 656E6E6520202020 emilienne
0208(00D0) 2020202020202073 6572766963657320 services
0224(00E0) 746563686E697175 6573202020202020 techniques
0240(00F0) 2020202020646761 722F63732F737420 dgar/cs/st
0256(0100) 2020202020202020 2020202020202020
0272(0110) 202020436573736F 6E2D73827669676E Cesson-sévign
0288(0120) 8220202020202080 4085333336336164 é Ç@à3363ad
0304(0130) 6A20414C4C41494E 2020202020202020 j ALLAIN
0320(0140) 2020202020202020 2020206C6F756973 louis
0336(0150) 6574746520202020 2020202020202061 ette a
0352(0160) 646A6F696E742061 6E74656E6E652073 djoint antenne s
0368(0170) 2E74202020202020 2020202020646761 .t dga
0384(0180) 722F63732F737420 2020202020202020 r/cs/st
0400(0190) 2020202020202020 202020436573736F Cesso
0416(01A0) 6E2D73827669676E 8220202020202002 n-sévigné .
0432(01B0) 4085333337356164 63204C4154455552 @à3375adc LATEUR
0448(01C0) 2020202020202020 2020202020202020
0464(01D0) 2020206A65616E2D 7069657272652020 jean-pierre
0480(01E0) 2020202020202063 6865662073657276 chef serv
0496(01F0) 6963652067826E82 72616C2020202020 ice général

secteur 0000002
0000(0000) 2020202020646761 722F63732F736720 dgar/cs/sg
0016(0010) 2020202020202020 2020202020202020
0032(0020) 202020436573736F 6E2D73827669676E Cesson-sévign
0048(0030) 8220202020202020 4085333337366776 é @à3376gv
0064(0040) 20204B41524D414E 4E20202020202020 KARMANN
0080(0050) 2020202020202020 20202064616E6965 danie
0096(0060) 6C20202020202020 2020202020202070 l p
0112(0070) 6C6F6D6269657220 2020202020202020 lombier
0128(0080) 2020202020202020 2020202020646761 dga
0144(0090) 722F63732F73672F 6167202020202020 r/cs/sg/ag
0160(00A0) 2020202020202020 202020436573736F Cesso
0176(00B0) 6E2D73827669676E 8220202020202020 n-sévigné
0192(00C0) 4085333430326164 63204C41564F4953 @à3402adc LAVOIS
0208(00D0) 4945522020202020 2020202020202020 IER
0224(00E0) 202020726F6E616C 6420202020202020 ronald
0240(00F0) 2020202020202063 656C6C756C652073 cellule s
0256(0100) 7461676573202020 2020202020202020 tages
0272(0110) 2020202020646766 202F63732F626670 dgf /cs/bfp
0288(0120) 6D20202020202020 2020202020202020 m
0304(0130) 202020436573736F 6E2D73827669676E Cesson-sévign
0320(0140) 8220202020202020 4085333438376164 é @à3487ad
0336(0150) 632042454C4D4F4E 5445202020202020 c BELMONTE
0352(0160) 2020202020202020 2020206A65616E2D jean-
0368(0170) 6D616E75656C2020 202020202020206D manuel m
0384(0180) 6F6E697465757220 65706D7320202020 oniteur epms
0400(0190) 2020202020202020 2020202020646766 dgf
0416(01A0) 202F63732F64732F 64656D672F65706D /cs/ds/demg/epm
0432(01B0) 7320202020202020 202020436573736F s Cesso

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 62


ESAT-DI [LRE] page XV-63
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

0448(01C0) 6E2D73827669676E 8220202020202020 n-sévigné


0464(01D0) 4085333532326164 6A204D4541552020 @à3522adj MEAU
0480(01E0) 2020202020202020 2020202020202020
0496(01F0) 2020206D61726965 2D7061756C652020 marie-paule

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 63


ESAT-DI [LRE] page XV-64
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000003
0000(0000) 2020202020202069 6E73747275637465 instructe
0016(0010) 757220737973748A 6D65732020202020 ur systèmes
0032(0020) 2020202020646761 722F63732F647274 dgar/cs/drt
0048(0030) 2F72697461202020 2020202020202020 /rita
0064(0040) 202020436573736F 6E2D73827669676E Cesson-sévign
0080(0050) 8220202020202020 4085333533376164 é @à3537ad
0096(0060) 6A204D4144454320 2020202020202020 j MADEC
0112(0070) 2020202020202020 202020616C61696E alain
0128(0080) 2020202020202020 2020202020202069 i
0144(0090) 6E73747275637465 757220737973748A nstructeur systè
0160(00A0) 6D65732020202020 2020202020646766 mes dgf
0176(00B0) 202F63732F64732F 6472742F72697461 /cs/ds/drt/rita
0192(00C0) 2020202020202020 202020436573736F Cesso
0208(00D0) 6E2D73827669676E 8220202020202020 n-sévigné
0224(00E0) 4085333533397363 6820414C4C41494E @à3539sch ALLAIN
0240(00F0) 2020202020202020 2020202020202020
0256(0100) 2020207061747269 636B202020202020 patrick
0272(0110) 2020202020202069 6E73747275637465 instructe
0288(0120) 7572206D74667020 2020202020202020 ur mtfp
0304(0130) 2020202020646766 202F63732F64732F dgf /cs/ds/
0320(0140) 6472742F6D746670 2020202020202020 drt/mtfp
0336(0150) 202020436573736F 6E2D73827669676E Cesson-sévign
0352(0160) 8220202020202020 208533353532636E é à3552cn
0368(0170) 65204C4520444152 5A20202020202020 e LE DARZ
0384(0180) 2020202020202020 2020207061747269 patri
0400(0190) 636B202020202020 2020202020202069 ck i
0416(01A0) 6E73747275637465 7572202020202020 nstructeur
0432(01B0) 2020202020202020 2020202020646766 dgf
0448(01C0) 202F63732F64732F 646D73692F726573 /cs/ds/dmsi/res
0464(01D0) 6561752020202020 202020436573736F eau Cesso
0480(01E0) 6E2D73827669676E 8220202020202020 n-sévigné
0496(01F0) 2085333535367363 68204C4520444149 à3556sch LE DAI

secteur 0000004
0000(0000) 4E20202020202020 2020202020202020 N
0016(0010) 2020206A65616E2D 6C75632020202020 jean-luc
0032(0020) 2020202020202069 6E73747275637465 instructe
0048(0030) 7572202020202020 2020202020202020 ur
0064(0040) 2020202020646766 202F63732F64732F dgf /cs/ds/
0080(0050) 6472732F72656E73 2020202020202020 drs/rens
0096(0060) 202020436573736F 6E2D73827669676E Cesson-sévign
0112(0070) 8220202020202020 408533323031696E é @à3201in
0128(0080) 732044554649474E 4F55202020202020 s DUFIGNOU
0144(0090) 2020202020202020 2020206D61726365 marce
0160(00A0) 6C20202020202020 2020202020202069 l i
0176(00B0) 6E73747275637465 7572202020202020 nstructeur
0192(00C0) 2020202020202020 2020202020326369 2ci
0208(00D0) 652F6C766C202020 2020202020202020 e/lvl
0224(00E0) 2020202020202020 2020204C6176616C Laval
0240(00F0) 2020202020202020 2020202020202020
0256(0100) 408533363434636E 65204C274855494C @à3644cne L'HUIL
0272(0110) 4C49455220202020 2020202020202020 LIER
0288(0120) 2020206D61726365 6C20202020202020 marcel
0304(0130) 2020202020202069 6E73747275637465 instructe
0320(0140) 7572202020202020 2020202020202020 ur
0336(0150) 2020202020646766 202F63732F64732F dgf /cs/ds/
0352(0160) 646D73692F737220 2020202020202020 dmsi/sr
0368(0170) 202020436573736F 6E2D73827669676E Cesson-sévign
0384(0180) 8220202020202020 4085333635306164 é @à3650ad
0400(0190) 63204D415254494E 2020202020202020 c MARTIN
0416(01A0) 2020202020202020 2020207976657320 yves
0432(01B0) 2020202020202020 2020202020202069 i
0448(01C0) 6E73747275637465 7572202020202020 nstructeur
0464(01D0) 2020202020202020 2020202020646766 dgf
0480(01E0) 202F63732F64732F 646D73692F637073 /cs/ds/dmsi/cps
0496(01F0) 2020202020202020 202020436573736F Cesso

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 64


ESAT-DI [LRE] page XV-65
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000005
0000(0000) 6E2D73827669676E 8220202020202020 n-sévigné
0016(0010) 4085333635316973 20204C4146415247 @à3651is LAFARG
0032(0020) 5545202020202020 2020202020202020 UE
0048(0030) 2020206A65616E2D 7069657272652020 jean-pierre
0064(0040) 2020202020202069 6E73747275637465 instructe
0080(0050) 7572202020202020 2020202020202020 ur
0096(0060) 2020202020646766 202F63732F64732F dgf /cs/ds/
0112(0070) 646D73692F637073 2020202020202020 dmsi/cps
0128(0080) 202020436573736F 6E2D73827669676E Cesson-sévign
0144(0090) 8220202020202020 4085333637316362 é @à3671cb
0160(00A0) 61204C4156414C4C 4152442020202020 a LAVALLARD
0176(00B0) 2020202020202020 2020206D69636865 miche
0192(00C0) 6C20202020202020 2020202020202069 l i
0208(00D0) 6E73747275637465 7572202020202020 nstructeur
0224(00E0) 2020202020202020 2020202020646766 dgf
0240(00F0) 202F63732F64732F 64656D672F65616F /cs/ds/demg/eao
0256(0100) 2020202020202020 202020436573736F Cesso
0272(0110) 6E2D73827669676E 8220202020202020 n-sévigné
0288(0120) 4085333639356363 652042454E4F4954 @à3695cce BENOIT
0304(0130) 2020202020202020 2020202020202020
0320(0140) 202020636C617564 6520202020202020 claude
0336(0150) 2020202020202063 6865662D73656374 chef-sect
0352(0160) 696F6E2061707061 7265696C73206D65 ion appareils me
0368(0170) 7375726520646766 202F63732F646667 sure dgf /cs/dfg
0384(0180) 2F646D2020202020 2020202020202020 /dm
0400(0190) 202020436573736F 6E2D73827669676E Cesson-sévign
0416(01A0) 8220202020202020 4085333639366174 é @à3696at
0432(01B0) 6520414C4C414E20 2020202020202020 e ALLAN
0448(01C0) 2020202020202020 2020207976616E20 yvan
0464(01D0) 2020202020202020 2020202020202073 s
0480(01E0) 656374696F6E2061 7070617265696C73 ection appareils
0496(01F0) 206465206D657375 7265202020646766 de mesure dgf

secteur 0000006
0000(0000) 202F63732F646667 2F646D2020202020 /cs/dfg/dm
0016(0010) 2020202020202020 202020436573736F Cesso
0032(0020) 6E2D73827669676E 8220202020202020 n-sévigné
0048(0030) 408535323037696E 732047524F504947 @à5207ins GROPIG
0064(0040) 4E41524420202020 2020202020202020 NARD
0080(0050) 2020206A756C6573 2020202020202020 jules
0096(0060) 2020202020202069 6E73747275637465 instructe
0112(0070) 7572202020202020 2020202020202020 ur
0128(0080) 2020202020646667 2F63732F64652F64 dfg/cs/de/d
0144(0090) 736F202020202020 2020202020202020 so
0160(00A0) 202020436573736F 6E2D73827669676E Cesson-sévign
0176(00B0) 8220202020202020 408533343131696E é @à3411in
0192(00C0) 732044414E4C4550 414E202020202020 s DANLEPAN
0208(00D0) 2020202020202020 202020826D696C65 émile
0224(00E0) 2020202020202020 2020202020202069 i
0240(00F0) 6E73747275637465 7572202020202020 nstructeur
0256(0100) 2020202020202020 2020202020646761 dga
0272(0110) 722F6C766C2F7361 2F63657220202020 r/lvl/sa/cer
0288(0120) 2020202020202020 2020204C6176616C Laval
0304(0130) 2020202020202020 2020202020202018 .
0320(0140) 4085353230366161 2020414D42524F49 @à5206aa AMBROI
0336(0150) 5320202020202020 2020202020202020 S
0352(0160) 2020206973616265 6C6C652020202020 isabelle
0368(0170) 2020202020202073 6563728274617269 secrétari
0384(0180) 617420827461742D 6D616A6F72202020 at état-major
0400(0190) 2020202020636474 202F6C766C202020 cdt /lvl
0416(01A0) 2020202020202020 2020202020202020
0432(01B0) 2020204C6176616C 2020202020202020 Laval
0448(01C0) 2020202020202020 4085353236317363 @à5261sc
0464(01D0) 6820414E47494241 554C542020202020 h ANGIBAULT
0480(01E0) 2020202020202020 2020207061747269 patri
0496(01F0) 636B202020202020 2020202020202063 ck c

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 65


ESAT-DI [LRE] page XV-66
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000007
0000(0000) 656E747265206E6F 64616C2031202020 entre nodal 1
0016(0010) 2020202020202020 2020202020326369 2ci
0032(0020) 652F6C766C202020 2020202020202020 e/lvl
0048(0030) 2020202020202020 2020204C6176616C Laval
0064(0040) 2020202020202020 2020202020202020
0080(0050) 4085353236337367 74204D4552434552 @à5263sgt MERCER
0096(0060) 4F4E202020202020 2020202020202020 ON
0112(0070) 2020207468696572 7279202020202020 thierry
0128(0080) 2020202020202063 656E747265206E6F centre no
0144(0090) 64616C2033202020 2020202020202020 dal 3
0160(00A0) 2020202020326369 652F6C766C202020 2cie/lvl
0176(00B0) 2020202020202020 2020202020202020
0192(00C0) 2020204C6176616C 2020202020202020 Laval
0208(00D0) 2020202020202020 4085353333306164 @à5330ad
0224(00E0) 6A20414E454E2020 2020202020202020 j ANEN
0240(00F0) 2020202020202020 2020207061747269 patri
0256(0100) 636B202020202020 2020202020202067 ck g
0272(0110) 8272616E74206365 72636C6520202020 érant cercle
0288(0120) 2020202020202020 2020202020646761 dga
0304(0130) 722F6C766C2F7361 2F63657220202020 r/lvl/sa/cer
0320(0140) 2020202020202020 2020204C6176616C Laval
0336(0150) 2020202020202020 2020202020202020
0352(0160) 4085353336346164 6320414E44524549 @à5364adc ANDREI
0368(0170) 2020202020202020 2020202020202020
0384(0180) 2020206A65616E2D 6672616E876F6973 jean-françois
0400(0190) 2020202020202063 686566206174656C chef atel
0416(01A0) 6965722072697461 2020202020202020 ier rita
0432(01B0) 2020202020646761 722F6C766C2F7374 dgar/lvl/st
0448(01C0) 2020202020202020 2020202020202020
0464(01D0) 2020204C6176616C 2020202020202020 Laval
0480(01E0) 2020202020202020 4085353337346363 @à5374cc
0496(01F0) 68204C4520424F55 42454E4E45432020 h LE BOUBENNEC

secteur 0000008
0000(0000) 2020202020202020 202020636C617564 claud
0016(0010) 696E652020202020 2020202020202073 ine s
0032(0020) 6563748274616972 65206174656C6965 ectétaire atelie
0048(0030) 72732067826E8272 6175782020646761 rs généraux dga
0064(0040) 722F6C766C2F6167 2020202020202020 r/lvl/ag
0080(0050) 2020202020202020 2020204C6176616C Laval
0096(0060) 2020202020202020 2020202020202020
0112(0070) 4085353432386164 6320414E44524520 @à5428adc ANDRE
0128(0080) 2020202020202020 2020202020202020
0144(0090) 2020206D61726365 6C20202020202020 marcel
0160(00A0) 2020202020202069 6E73747275637465 instructe
0176(00B0) 7572206964656E74 2E206C6174746120 ur ident. latta
0192(00C0) 2020202020646766 202F6C766C2F6466 dgf /lvl/df
0208(00D0) 6720202020202020 2020202020202020 g
0224(00E0) 2020204C6176616C 2020202020202020 Laval
0240(00F0) 2020202020202001 4085353536377367 .@à5567sg
0256(0100) 7420414E47494241 5544202020202020 t ANGIBAUD
0272(0110) 2020202020202020 2020207069657272 pierr
0288(0120) 6520202020202020 2020202020202061 e a
0304(0130) 726D757269657220 2020202020202020 rmurier
0320(0140) 2020202020202020 202020202075636C ucl
0336(0150) 202F6C766C202020 2020202020202020 /lvl
0352(0160) 2020202020202020 2020204C6176616C Laval
0368(0170) 2020202020202020 2020202020202020
0384(0180) 4085353433306C63 6C20434143494F4C @à5430lcl CACIOL
0400(0190) 4920202020202020 2020202020202020 I
0416(01A0) 202020616C61696E 2020202020202020 alain
0432(01B0) 2020202020202063 68656620616E7465 chef ante
0448(01C0) 6E6E652064697669 73696F6E20656D70 nne division emp
0464(01D0) 6C6F69202064656D 702F6C766C2F6466 loi demp/lvl/df
0480(01E0) 672F64656D702F66 6578612020202020 g/demp/fexa
0496(01F0) 2020204C6176616C 2020202020202020 Laval

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 66


ESAT-DI [LRE] page XV-67
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000009
0000(0000) 2020202020202080 4085333531306970 Ç@à3510ip
0016(0010) 32204341494C4C45 2020202020202020 2 CAILLE
0032(0020) 2020202020202020 2020206265726E61 berna
0048(0030) 7264202020202020 2020202020202063 rd c
0064(0040) 6865662064652063 6F75727320726974 hef de cours rit
0080(0050) 6120202020202020 2020202020646667 a dfg
0096(0060) 2F63732F64732F64 72742F7269746120 /cs/ds/drt/rita
0112(0070) 2020202020202020 202020436573736F Cesso
0128(0080) 6E2D73827669676E 8220202020202020 n-sévigné
0144(0090) 4085333435306C63 6C2043414C494E45 @à3450lcl CALINE
0160(00A0) 2020202020202020 2020202020202020
0176(00B0) 2020206265727472 616E642020202020 bertrand
0192(00C0) 2020202020202063 6474206469766973 cdt divis
0208(00D0) 696F6E20736F7573 2D6F666669636965 ion sous-officie
0224(00E0) 7273202020646667 2F63732F64652F64 rs dfg/cs/de/d
0240(00F0) 736F202020202020 2020202020202020 so
0256(0100) 202020436573736F 6E2D73827669676E Cesson-sévign
0272(0110) 8220202020202020 0000000000000000 é ........
0288(0120) 0000000000000000 0000000000000000 ................
0304(0130) 0000000000000000 0000000000000000 ................
0320(0140) 0000000000000000 0000000000000000 ................
0336(0150) 0000000000000000 0000000000000000 ................
0352(0160) 0000000000000000 0000000000000000 ................
0368(0170) 0000000000000000 0000000000000000 ................
0384(0180) 0000000000000000 0000000000000000 ................
0400(0190) 0000000000000000 0000000000000000 ................
0416(01A0) 0000000000000000 0000000000000000 ................
0432(01B0) 0000000000000000 0000000000000000 ................
0448(01C0) 0000000000000000 0000000000000000 ................
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 67


ESAT-DI [LRE] page XV-68
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

XV.D.1.2 LE FICHIER DES INDEX

LE FICHIER DES INDEX

FILE HEADER RECORD

KEYINFORMATION Free space record Free space record


RECORD N°1 pour les données pour les index

KEY I R N°2
arbre binaire pour une seule clé

KEYI R N°J
ROOT INDEX
NODE RECORD

NODE RECORD NODE RECORD

NODE RECORD NODE RECORD NODE RECORD NODE RECORD

node de node de node de node de node de node de node de node de


dernier dernier dernier dernier dernier dernier dernier dernier
niveau niveau niveau niveau niveau niveau niveau niveau

dans ce type de node , on trouve


à côté de la valeur de la clé ,
l'adresse dans le fichier des données de l'article cherché

decription du schéma :

Chaque fichier (y compris le fichier des données) a toujours un bloc en-tête nommé « FILE-HEADER RECORD » contenant des informations
générales sur le fichier.

Dans ce bloc en-ête , on trouve entre autres , l’adresse de l’article « KEY-INFORMATION » (il peut y en avoir plusieurs si on a beaucoup de
clés) : celui-ci contient toutes les données utiles sur les clés (primaire et secondaires).
On trouve également , dans le file-header record , l’adresse de l’ article « FREE SPACE RECORD » pour le fichier des données et l’adresse
de l’ article « FREE SPACE RECORD » pour le fichier des index :qui indiquent les emplacements libres dans leur fichier respectif.

Dans le KEY-INFORMATION record , il y a une entrée par clé qui contient notamment l’adresse du ROOT-NODE-RECORD (noeud de plus
haut niveau par lequel il faudra passer pour effectuer une recherche avec cette clé).

Il peut n’y avoir qu’un niveau de node dans ce cas le ROOT-NODE-RECORD est à la fois un noeud de haut niveau et un noeud de plus bas
niveau (LEAF-NODE) mais s’il y a beaucoup de valeurs de clé , celles-ci sont accessibles par l’intermédiaire d’une succession d’articles
NODE organisés en arbre binaire (B-TREE).

Dans chaque article NODE , on trouve (par dichotomie) l’adresse du RECORD-NODE suivant qui gère la valeur de clé cherchée : quand on
arrive sur le noeud de plus bas niveau (LEAF-NODE) on trouve l’information cherchée , c’est-à-dire l’adresse dans le fichier des données de
l’article qui possède cette valeur de clé.

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 68


ESAT-DI [LRE] page XV-69
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

étude détaillée du vidage physique

LE FILE-HEADER RECORD
taille du file-header-record (sans le bit 1 )
=> 3FE = (1022)10

secteur 0000000
0000(0000) 33FE000000000000 3937313030383037 3_......97100807
0016(0010) 3535353332393938 3033303931363433 5553299803091643
0032(0020) 34393735003E0002 0000000300000000 4975.>.......... 02 => séquentiel indexé
0048(0030) 0000000000000000 0085000000850000 .........à...à..
0064(0040) 0000000000000000 0000000004000000 ................
0080(0050) 0000000000000000 0000000000000000 ................
0096(0060) 0000000000000000 000000044100202E ............A. .
0112(0070) 4100202E00000000 0000000000003C00 A. ...........<. 3c00=adr.fin logique du fichier des index
0128(0080) 0000000000001318 0202040400060002 ................ 1318=adr. fin logique du fichier des données
0144(0090) 0000000000000400 0000000000003800 ..............8.
0160(00A0) 0000000000000000 00000000000003FE ..............._
nbre de clés=6 o ou 1 pour les
0176(00B0) 0000000000000000 0000000000000000 ................ exemple :
fichiers
0192(00C0) 0000000000000000 0000000000000000 ................ 3c00=(15360)10 ;
IDXFORMAT4.
0208(00D0) 0000000000000000 0000000000000000 ................ 15360 /512 = 30 reste 0
Le 02 qui suit =
0224(00E0) 400 = (1024)10 = adresse du0000000000000000
0000000000000000 ................
nbre de caracatères => la fin du fichier se trouve
0240(00F0) premier RECORD KEY 0000000000000000
0000000000000000 ................
utilisés pour secteur 30 offset 0.
0256(0100) INFORMATION
0000000000000000 0000000000000000 ................
compter les
0272(0110) 0000000000000000 0000000000000000 ................
doublons.(ici 2
0288(0120) 0000000000000000 0000000000000000 ................
bytes)
0304(0130) 0000000000000000 0000000000000000 ................
0320(0140) 0000000000000000 0000000000000000 ................
0336(0150) 0000000000000000 0000000000000000 ................
0352(0160) 3800=adresse
0000000000000000
du FREE 0000000000000000 ............... .
0368(0170) SPACE
0000000000000000
RECORD pour 0000000000000000 ................
0384(0180) les0000000000000000
données. 0000000000000000 .. ..............
0400(0190) le0000000000000000
00000000 suivant longueur d’un article
0000000000000000 ................
0416(01A0) encadré
0000000000000000
concerne le (NODE) sur le fichier des
0000000000000000 ................
0432(01B0) FREE
0000000000000000 index
SPACE RECORD 0000000000000000 ................
0448(01C0) pour
0000000000000000
les index => il n’y 0000000000000000 ................
0464(01D0) en0000000000000000
a pas. 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

secteur 0000001
0000(0000) 0000000000000000 0000000000000000 ................
0016(0010) 0000000000000000 0000000000000000 ................
0032(0020) 0000000000000000 0000000000000000 ................
0048(0030) 0000000000000000 0000000000000000 ................
0064(0040) 0000000000000000 0000000000000000 ................
0080(0050) 0000000000000000 0000000000000000 ................
0096(0060) 0000000000000000 0000000000000000 ................
0112(0070) 0000000000000000 0000000000000000 ................
0128(0080) 0000000000000000 0000000000000000 ................
0144(0090) 0000000000000000 0000000000000000 ................
0160(00A0) 0000000000000000 0000000000000000 ................
0176(00B0) 0000000000000000 0000000000000000 ................
0192(00C0) 0000000000000000 0000000000000000 ................
0208(00D0) 0000000000000000 0000000000000000 ................
0224(00E0) 0000000000000000 0000000000000000 ................
0240(00F0) 0000000000000000 0000000000000000 ................
0256(0100) 0000000000000000 0000000000000000 ................
0272(0110) 0000000000000000 0000000000000000 ................
0288(0120) 0000000000000000 0000000000000000 ................
0304(0130) 0000000000000000 0000000000000000 ................
0320(0140) 0000000000000000 0000000000000000 ................
0336(0150) 0000000000000000 0000000000000000 ................
0352(0160) 0000000000000000 0000000000000000 ................
0368(0170) 0000000000000000 0000000000000000 ................
0384(0180) 0000000000000000 0000000000000000 ................
0400(0190) 0000000000000000 0000000000000000 ................
0416(01A0) 0000000000000000 0000000000000000 ................
0432(01B0) 0000000000000000 0000000000000000 ................
0448(01C0) 0000000000000000 0000000000000000 ................
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 69


ESAT-DI [LRE] page XV-70
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

LE KEY-INFORMATION RECORD
adresse du KEY INFORMATION
RECORD suivant (ici il n’y en a pas)

secteur 0000002
0000(0000) 004E00000000000C 0000080000000400 .N..............
0016(0010) 0000000C00000C00 008019000800000C .........Ç......
0032(0020) 0000100000800400 0400000C00001400 .....Ç..........
0048(0030) 00801E003500000C 0000180000801E00 .Ç..5........Ç..
0064(0040) 5300000C00001C00 0080140071000000 S........Ç..q...
0080(0050) 0000000000000000 0000000000000000 ................

004E en binaire = 0000 0000 0100 1110 = 4E = (78)10 (= les bits 1 à 14) indique la fin de
la dernière clé. (le bit 1 = bit de sécurité à 0)

à partir du 7 ème caractère ,il y a une entrée par clé (la clé primaire étant toujours
la première).
La longueur d’une entrée n’est pas fixée définitivement (elle dépend notamment de nature
de la clé).

ici l’entrée-1 => clé primaire contient la partie grisée :

. 000C 00000800 00 0004000000


longueur adresse du ROOT 0=>compression des doubles key-component-block
de l’entrée = 12 c NODE =2048 =>secteur 4 1=> des carac de début
carac n° 0 2=> des espaces de fin

0004 0000 00
0 000 0000 0000 0100 adresse de la clé type de compposant [NB :si c’est une split-key
longueur de la clé à l’intérieur il y a 1 component-block
de l’article par composant]
0=> doubles interdits ; 1 => autorisés

0096(0060) 0000000000000000 0000000000000000 ................


0112(0070) 0000000000000000 0000000000000000 ................NB : la table des entrées contient toujours
0128(0080) 0000000000000000 0000000000000000 ................ la clé primaire en premier puis
0144(0090) 0000000000000000 0000000000000000 ................ les clés secondaires dans l’ordre
0160(00A0) 0000000000000000 0000000000000000 ................ où elles ont été créées.
0176(00B0) 0000000000000000 0000000000000000 ................
0192(00C0) 0000000000000000 0000000000000000 ................
. . . . .
. . . . .
. . . . .
0400(0190) 0000000000000000 0000000000000000 ................
0416(01A0) 0000000000000000 0000000000000000 ................
0432(01B0) 0000000000000000 0000000000000000 ................
0448(01C0) 0000000000000000 0000000000000000 ................
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

secteur 0000003 à la fin du RECORD


0000(0000) 0000000000000000 0000000000000000 ................ KEY INFORMATION
0016(0010) 0000000000000000 0000000000000000 ................
.
.
.
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 00000000FF7E0000 ............_~..

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 70


ESAT-DI [LRE] page XV-71
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

les nodes records


Chaque clé est indépendante et a sa propre structure en arbre.

La taille d’un article NODE est par défaut 1024 bytes (mais celà peut changer selon la taille de la plus grande clé : si celle-ci-a une taille >
238, le node est sur 4096 c.; on peut également fixer la taille du node-record à l’aide de la variable d’environnement XFHNODE).

1 000 0001 0000 0010


sécurité adresse sur la fin de la
dernière clé =102=25810

première entrée (détaillée ci-dessous)


secteur 0000004
0000(0000) 8102333230310000 0878333331300000 ü.3201...x3310..
0016(0010) 0108333332300000 0190333332380000 ..3320...É3328..
0032(0020) 0218333336320000 02A0333336330000 ..3362...á3363..
0048(0030) 0328333337350000 03B0333337360000 .(3375..._3376..
0064(0040) 0438333430320000 04C0333431310000 .83402...+3411..
0080(0050) 0CB8333435300000 1290333438370000 .+3450...É3487..
0096(0060) 0548333531300000 1208333532320000 .H3510....3522..
0112(0070) 05D0333533370000 0658333533390000 .-3537...X3539..
0128(0080) 06E0333634340000 0900333635300000 ._3644....3650..
0144(0090) 0988333635310000 0A10333637310000 .ê3651....3671..
0160(00A0) 0A98333639350000 0B20333639360000 .ÿ3695... 3696..
0176(00B0) 0BA8353230360000 0D40353230370000 .¿5206...@5207..
0192(00C0) 0C30353236310000 0DC8353236330000 .05261...+5263..
0208(00D0) 0E50353333300000 0ED8353336340000 .P5330...+5364..
0224(00E0) 0F60353337340000 0FE8353432380000 .`5374..._5428..
0240(00F0) 1070353433300000 1180353536370000 .p5430...Ç5567..
0256(0100) 10F8000000000000 0000000000000000 .°..............

33 32 30 31 00 00 08 78

valeur de la clé optionnel adresse des données si on est sur un LEAF-NODE (31 bits)
(2 carac. si les ou adresse du node inférieur
doubles sont autorisés) 0 000 0000 0000 0000 0000 1000 0111 1000
=n° de doubles

ici , on est sur un LEAF-NODE (noeud de plus bas niveau) malgré que celui-ci soit un ROOT
=> 878=216810 = adresse dans le fichier des données ; 2168 /512 = 4 reste 120 => l’article se trouve au caractère 120 du secteur 4

0272(0110) 0000000000000000 0000000000000000 ................


0288(0120) 0000000000000000 0000000000000000 ................
.
.
0304(0130) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................
1 000 0000
secteur 0000005 bit 7 : security flag
0000(0000) 0000000000000000 0000000000000000 ................
.
.
bit 0 à 6 : nature du NODE
numéro 000 0000 => LEAF NODE
d’index (0 pour clé prim.)
[caractérise une clé]
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000800000 .............Ç..

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 71


ESAT-DI [LRE] page XV-72
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000006
0000(0000) 80404C274855494C 4C49455220202020 Ç@L'HUILLIER
0016(0010) 2020202020202020 2020200001000030 ....0
0032(0020) 00FFFFFFFFFFFFFF FFFFFFFFFFFFFFFF ._______________
0048(0030) FFFFFFFFFFFFFFFF FFFFFFFF00003400 ____________..4.
0064(0040) 0000000000000000 0000000000000000 ................
0080(0050) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

secteur 0000007
0000(0000) 0000000000000000 0000000000000000 ................
0016(0010) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000001810000 .............ü..

secteur 0000008
0000(0000) 0142616120200001 00000D4061646320 .Baa .....@adc
0016(0010) 0001000003B06164 63200002000004C0 ....._adc .....+
0032(0020) 6164632000030000 0548616463200005 adc .....Hadc ..
0048(0030) 0000098861646320 000600000F606164 ...êadc .....`ad
0064(0040) 6320000700001070 61646A2000010000 c .....padj ....
0080(0050) 05D061646A200002 0000065861646A20 .-adj .....Xadj
0096(0060) 000300000ED86164 6A20000400000328 .....+adj .....(
0112(0070) 6174652000010000 0BA8636261200001 ate .....¿cba ..
0128(0080) 00000A9863636520 000100000B206363 ...ÿcce ..... cc
0144(0090) 68200001000002A0 6363682000020000 h .....ácch ....
0160(00A0) 0FE8636E65200002 0000090067762020 ._cne ......gv
0176(00B0) 000100000438696E 7320000100000CB8 .....8ins .....+
0192(00C0) 696E732000020000 0C30696E73200003 ins .....0ins ..
0208(00D0) 0000087869703220 0001000012086973 ...xip2 ......is
0224(00E0) 2020000100000A10 6C636C2000010000 ......lcl ....
0240(00F0) 11806C636C200002 000012906D616A20 .Çlcl .....Émaj
0256(0100) 0001000001087031 2020000100000190 ......p1 .....É
0272(0110) 7363682000020000 06E0736368200004 sch ....._sch ..
0288(0120) 00000DC873677420 0001000002187367 ...+sgt ......sg
0304(0130) 7420000200000E50 7367742000030000 t .....Psgt ....
0320(0140) 10F8000000000000 0000000000000000 .°..............
. . . . . . .
. . . . . . .
. . . . . . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

secteur 0000009
0000(0000) 0000000000000000 0000000000000000 ................
0016(0010) 0000000000000000 0000000000000000 ................
0032(0020) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000002000000 ................

secteur 0000010
0000(0000) 804A696E73747275 6374657572202020 ÇJinstructeur
0016(0010) 2020202020202020 2020202020202020
0032(0020) 000400002000FFFF FFFFFFFFFFFFFFFF .... .__________
0048(0030) FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF ________________
0064(0040) FFFFFFFFFFFF0000 2400000000000000 ______..$.......
0080(0050) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 72


ESAT-DI [LRE] page XV-73
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000011
0000(0000) 0000000000000000 0000000000000000 ................
0016(0010) 0000000000000000 0000000000000000 ................
0032(0020) 0000000000000000 0000000000000000 ................
. . .
. . .
0448(01C0) 0000000000000000 0000000000000000 ................
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000003810000 .............ü..

secteur 0000012
0000(0000) 804A646766202F63 732F6266706D2020 ÇJdgf /cs/bfpm
0016(0010) 2020202020202020 2020202020202020
0032(0020) 000100002800FFFF FFFFFFFFFFFFFFFF ....(.__________
0048(0030) FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF ________________
0064(0040) FFFFFFFFFFFF0000 2C00000000000000 ______..,.......
0080(0050) 0000000000000000 0000000000000000 ................
0096(0060) 0000000000000000 0000000000000000 ................
0112(0070) 0000000000000000 0000000000000000 ................
. . .
. . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

secteur 0000013
0000(0000) 0000000000000000 0000000000000000 ................
0016(0010) 0000000000000000 0000000000000000 ................
0032(0020) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000004810000 .............ü..

secteur 0000014
0000(0000) 8342436573736F6E 2D73827669676E82 âBCesson-sévigné
0016(0010) 2020202020200002 0000010843657373 ......Cess
0032(0020) 6F6E2D7382766967 6E82202020202020 on-sévigné
0048(0030) 0003000001904365 73736F6E2D738276 .....ÉCesson-sév
0064(0040) 69676E8220202020 2020000400000218 igné ......
0080(0050) 436573736F6E2D73 827669676E822020 Cesson-sévigné
0096(0060) 2020202000050000 02A0436573736F6E .....áCesson
0112(0070) 2D73827669676E82 2020202020200006 -sévigné ..
0128(0080) 0000032843657373 6F6E2D7382766967 ...(Cesson-sévig
0144(0090) 6E82202020202020 0007000003B04365 né ....._Ce
0160(00A0) 73736F6E2D738276 69676E8220202020 sson-sévigné
0176(00B0) 2020000800000438 436573736F6E2D73 .....8Cesson-s
0192(00C0) 827669676E822020 2020202000090000 évigné ....
0208(00D0) 04C0436573736F6E 2D73827669676E82 .+Cesson-sévigné
0224(00E0) 202020202020000A 0000054843657373 .....HCess
0240(00F0) 6F6E2D7382766967 6E82202020202020 on-sévigné
0256(0100) 000B000005D04365 73736F6E2D738276 .....-Cesson-sév
0272(0110) 69676E8220202020 2020000C00000658 igné .....X
0288(0120) 436573736F6E2D73 827669676E822020 Cesson-sévigné
0304(0130) 20202020000D0000 06E0436573736F6E ....._Cesson
0320(0140) 2D73827669676E82 2020202020200011 -sévigné ..
0336(0150) 0000090043657373 6F6E2D7382766967 ....Cesson-sévig
0352(0160) 6E82202020202020 0012000009884365 né .....êCe
0368(0170) 73736F6E2D738276 69676E8220202020 sson-sévigné
0384(0180) 2020001300000A10 436573736F6E2D73 ......Cesson-s
0400(0190) 827669676E822020 2020202000140000 évigné ....
0416(01A0) 0A98436573736F6E 2D73827669676E82 .ÿCesson-sévigné
0432(01B0) 2020202020200015 00000B2043657373 ..... Cess
0448(01C0) 6F6E2D7382766967 6E82202020202020 on-sévigné
0464(01D0) 001600000BA84365 73736F6E2D738276 .....¿Cesson-sév
0480(01E0) 69676E8220202020 2020001800001208 igné ......
0496(01F0) 436573736F6E2D73 827669676E822020 Cesson-sévigné

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 73


ESAT-DI [LRE] page XV-74
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000015
0000(0000) 2020202000190000 1290436573736F6E .....ÉCesson
0016(0010) 2D73827669676E82 202020202020001A -sévigné ..
0032(0020) 00000C304C617661 6C20202020202020 ...0Laval
0048(0030) 2020202020202020 000200000D404C61 .....@La
0064(0040) 76616C2020202020 2020202020202020 val
0080(0050) 2020000300000DC8 4C6176616C202020 .....+Laval
0096(0060) 2020202020202020 2020202000040000 ....
0112(0070) 0E504C6176616C20 2020202020202020 .PLaval
0128(0080) 2020202020200005 00000ED84C617661 .....+Lava
0144(0090) 6C20202020202020 2020202020202020 l
0160(00A0) 000600000F604C61 76616C2020202020 .....`Laval
0176(00B0) 2020202020202020 2020000700000FE8 ....._
0192(00C0) 4C6176616C202020 2020202020202020 Laval
0208(00D0) 2020202000080000 10704C6176616C20 .....pLaval
0224(00E0) 2020202020202020 2020202020200009 ..
0240(00F0) 000010F84C617661 6C20202020202020 ...°Laval
0256(0100) 2020202020202020 000A000011804C61 .....ÇLa
0272(0110) 76616C2020202020 2020202020202020 val
0288(0120) 2020000B00000CB8 4C6176616C202020 .....+Laval
0304(0130) 2020202020202020 20202020000C0000 ....
0320(0140) 0878000000000000 0000000000000000 .x..............
0336(0150) 0000000000000000 0000000000000000 ................
0352(0160) 0000000000000000 0000000000000000 ................
. . . . . . .
. . . . . . .
. . . . . . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000005800000 .............Ç..

secteur 0000016
0000(0000) 821E61646A6F696E 7420616E74656E6E é-adjoint antenn
0016(0010) 6520732E74202020 2020202020202020 e s.t
0032(0020) 0001000003286172 6D75726965722020 .....(armurier
0048(0030) 2020202020202020 2020202020202020
0064(0040) 2020202000010000 10F862726F636865 .....°broche
0080(0050) 75722D656E2D6368 6566202020202020 ur-en-chef
0096(0060) 2020202020202020 0001000001906364 .....Écd
0112(0070) 7420646976697369 6F6E20736F75732D t division sous-
0128(0080) 6F66666963696572 7320202000010000 officiers ....
0144(0090) 129063656C6C756C 6520656666656374 .Écellule effect
0160(00A0) 69667320636F6E74 696E67656E742020 ifs contingent
0176(00B0) 0001000002186365 6C6C756C65207374 ......cellule st
0192(00C0) 6167657320202020 2020202020202020 ages
0208(00D0) 2020202000010000 04C063656E747265 .....+centre
0224(00E0) 206E6F64616C2031 2020202020202020 nodal 1
0240(00F0) 2020202020202020 000100000DC86365 .....+ce
0256(0100) 6E747265206E6F64 616C203320202020 ntre nodal 3
0272(0110) 2020202020202020 2020202000010000 ....
0288(0120) 0E50636865662061 6E74656E6E652064 .Pchef antenne d
0304(0130) 69766973696F6E20 656D706C6F692020 ivision emploi
0320(0140) 0001000011806368 6566206174656C69 .....Çchef ateli
0336(0150) 6572207269746120 2020202020202020 er rita
0352(0160) 2020202000010000 0F60636865662064 .....`chef d
0368(0170) 6520636F75727320 7269746120202020 e cours rita
0384(0180) 2020202020202020 0001000012086368 ......ch
0400(0190) 6566207365727669 63652067826E8272 ef service génér
0416(01A0) 616C202020202020 2020202000010000 al ....
0432(01B0) 03B0636865662D73 656374696F6E2061 ._chef-section a
0448(01C0) 7070617265696C73 206D657375726520 ppareils mesure
0464(01D0) 000100000B206782 72616E7420636572 ..... gérant cer
0480(01E0) 636C652020202020 2020202020202020 cle
0496(01F0) 2020202000010000 0ED8696E73747275 .....+instru

secteur 0000017
0000(0000) 6374657572202020 2020202020202020 cteur
0016(0010) 2020202020202020 0004000009000000 ........
0032(0020) 0000000000000000 0000000000000000 ................
0048(0030) 0000000000000000 0000000000000000 ................
0064(0040) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000003800000 .............Ç..

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 74


ESAT-DI [LRE] page XV-75
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000018
0000(0000) 0266696E73747275 6374657572202020 .finstructeur
0016(0010) 2020202020202020 2020202020202020
0032(0020) 000500000988696E 7374727563746575 .....êinstructeu
0048(0030) 7220202020202020 2020202020202020 r
0064(0040) 2020202000060000 0A10696E73747275 ......instru
0080(0050) 6374657572202020 2020202020202020 cteur
0096(0060) 2020202020202020 000700000A98696E .....ÿin
0112(0070) 7374727563746575 7220202020202020 structeur
0128(0080) 2020202020202020 2020202000080000 ....
0144(0090) 0CB8696E73747275 6374657572202020 .+instructeur
0160(00A0) 2020202020202020 2020202020202020
0176(00B0) 000900000C30696E 7374727563746575 .....0instructeu
0192(00C0) 7220202020202020 2020202020202020 r
0208(00D0) 20202020000A0000 0878696E73747275 .....xinstru
0224(00E0) 6374657572206964 656E742E206C6174 cteur ident. lat
0240(00F0) 7461202020202020 000100001070696E ta .....pin
0256(0100) 7374727563746575 72206D7466702020 structeur mtfp
0272(0110) 2020202020202020 2020202000010000 ....
0288(0120) 06E0696E73747275 6374657572207379 ._instructeur sy
0304(0130) 73748A6D65732020 2020202020202020 stèmes
0320(0140) 0001000005D0696E 7374727563746575 .....-instructeu
0336(0150) 7220737973748A6D 6573202020202020 r systèmes
0352(0160) 2020202000020000 06586D6F6E697465 .....Xmonite
0368(0170) 75722065706D7320 2020202020202020 ur epms
0384(0180) 2020202020202020 0001000005486F66 .....Hof
0400(0190) 666963696572206D 2063207320202020 ficier m c s
0416(01A0) 2020202020202020 2020202000010000 ....
0432(01B0) 0108706C6F6D6269 6572202020202020 ..plombier
0448(01C0) 2020202020202020 2020202020202020
0464(01D0) 0001000004387365 6372827461726961 .....8secrétaria
0480(01E0) 7420827461742D6D 616A6F7220202020 t état-major
0496(01F0) 2020202000010000 0D4073656374696F .....@sectio

secteur 0000019
0000(0000) 6E20617070617265 696C73206465206D n appareils de m
0016(0010) 6573757265202020 000100000BA87365 esure .....¿se
0032(0020) 6374827461697265 206174656C696572 ctétaire atelier
0048(0030) 732067826E827261 7578202000010000 s généraux ....
0064(0040) 0FE8736572766963 657320746563686E ._services techn
0080(0050) 6971756573202020 2020202020202020 iques
0096(0060) 0001000002A00000 0000000000000000 .....á..........
0112(0070) 0000000000000000 0000000000000000 ................
. . .
. . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000003000000 ................

secteur 0000020
0000(0000) 82F6326369652F6C 766C202020202020 é÷2cie/lvl
0016(0010) 2020202020202020 2020202020202020
0032(0020) 000100000DC83263 69652F6C766C2020 .....+2cie/lvl
0048(0030) 2020202020202020 2020202020202020
0064(0040) 2020202000020000 0E50326369652F6C .....P2cie/l
0080(0050) 766C202020202020 2020202020202020 vl
0096(0060) 2020202020202020 0003000008786364 .....xcd
0112(0070) 74202F6C766C2020 2020202020202020 t /lvl
0128(0080) 2020202020202020 2020202000010000 ....
0144(0090) 0D4064656D702F6C 766C2F6466672F64 .@demp/lvl/dfg/d
0160(00A0) 656D702F66657861 2020202020202020 emp/fexa
0176(00B0) 0001000011806466 672F63732F64652F .....Çdfg/cs/de/
0192(00C0) 64736F2020202020 2020202020202020 dso
0208(00D0) 2020202000010000 12906466672F6373 .....Édfg/cs
0224(00E0) 2F64652F64736F20 2020202020202020 /de/dso
0240(00F0) 2020202020202020 000200000C306466 .....0df
0256(0100) 672F63732F64732F 6472742F72697461 g/cs/ds/drt/rita
0272(0110) 2020202020202020 2020202000010000 ....
0288(0120) 1208646761722F63 732F622E70657273 ..dgar/cs/b.pers
0304(0130) 2020202020202020 2020202020202020
0320(0140) 0001000002186467 61722F63732F6472 ......dgar/cs/dr
0336(0150) 742F726974612020 2020202020202020 t/rita
0352(0160) 2020202000010000 05D0646761722F63 .....-dgar/c
0368(0170) 732F73612F636174 2020202020202020 s/sa/cat
0384(0180) 2020202020202020 0001000001086467 ......dg
0400(0190) 61722F63732F7361 2F70696120202020 ar/cs/sa/pia
0416(01A0) 2020202020202020 2020202000010000 ....
0432(01B0) 0190646761722F63 732F736720202020 .Édgar/cs/sg
0448(01C0) 2020202020202020 2020202020202020

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 75


ESAT-DI [LRE] page XV-76
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

0464(01D0) 0001000003B06467 61722F63732F7367 ....._dgar/cs/sg


0480(01E0) 2F61672020202020 2020202020202020 /ag
0496(01F0) 2020202000010000 0438646761722F63 .....8dgar/c

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 76


ESAT-DI [LRE] page XV-77
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000021
0000(0000) 732F737420202020 2020202020202020 s/st
0016(0010) 2020202020202020 0001000002A06467 .....ádg
0032(0020) 61722F63732F7374 2020202020202020 ar/cs/st
0048(0030) 2020202020202020 2020202000020000 ....
0064(0040) 0328646761722F6C 766C2F6167202020 .(dgar/lvl/ag
0080(0050) 2020202020202020 2020202020202020
0096(0060) 000100000FE86467 61722F6C766C2F73 ....._dgar/lvl/s
0112(0070) 612F636572202020 2020202020202020 a/cer
0128(0080) 2020202000010000 0ED8646761722F6C .....+dgar/l
0144(0090) 766C2F73612F6365 7220202020202020 vl/sa/cer
0160(00A0) 2020202020202020 000200000CB86467 .....+dg
0176(00B0) 61722F6C766C2F73 7420202020202020 ar/lvl/st
0192(00C0) 2020202020202020 2020202000010000 ....
0208(00D0) 0F60646766202F63 732F6266706D2020 .`dgf /cs/bfpm
0224(00E0) 2020202020202020 2020202020202020
0240(00F0) 0001000004C00000 0000000000000000 .....+..........
0256(0100) 0000000000000000 0000000000000000 ................
. . . . . . .
. . . . . . .
. . . . . . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000004800000 .............Ç..

secteur 0000022
0000(0000) 018E646766202F63 732F6466672F646D .Ädgf /cs/dfg/dm
0016(0010) 2020202020202020 2020202020202020
0032(0020) 000100000B206467 66202F63732F6466 ..... dgf /cs/df
0048(0030) 672F646D20202020 2020202020202020 g/dm
0064(0040) 2020202000020000 0BA8646766202F63 .....¿dgf /c
0080(0050) 732F64732F64656D 672F65616F202020 s/ds/demg/eao
0096(0060) 2020202020202020 000100000A986467 .....ÿdg
0112(0070) 66202F63732F6473 2F64656D672F6570 f /cs/ds/demg/ep
0128(0080) 6D73202020202020 2020202000010000 ms ....
0144(0090) 0548646766202F63 732F64732F646D73 .Hdgf /cs/ds/dms
0160(00A0) 692F637073202020 2020202020202020 i/cps
0176(00B0) 0001000009886467 66202F63732F6473 .....êdgf /cs/ds
0192(00C0) 2F646D73692F6370 7320202020202020 /dmsi/cps
0208(00D0) 2020202000020000 0A10646766202F63 ......dgf /c
0224(00E0) 732F64732F646D73 692F737220202020 s/ds/dmsi/sr
0240(00F0) 2020202020202020 0001000009006467 ......dg
0256(0100) 66202F63732F6473 2F6472742F6D7466 f /cs/ds/drt/mtf
0272(0110) 7020202020202020 2020202000010000 p ....
0288(0120) 06E0646766202F63 732F64732F647274 ._dgf /cs/ds/drt
0304(0130) 2F72697461202020 2020202020202020 /rita
0320(0140) 0001000006586467 66202F6C766C2F64 .....Xdgf /lvl/d
0336(0150) 6667202020202020 2020202020202020 fg
0352(0160) 2020202000010000 107075636C202F6C .....pucl /l
0368(0170) 766C202020202020 2020202020202020 vl
0384(0180) 2020202020202020 0001000010F80000 .....°..
0400(0190) 0000000000000000 0000000000000000 ................
. . . . . . .
. . . . . . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000000000000 ................

secteur 0000023
0000(0000) 0000000000000000 0000000000000000 ................
0016(0010) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000004000000 ................

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 77


ESAT-DI [LRE] page XV-78
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000024
0000(0000) 82AC4144414D2020 2020202020202020 é¼ADAM
0016(0010) 2020202020202020 2020200001000001 .....
0032(0020) 90414C4C41494E20 2020202020202020 ÉALLAIN
0048(0030) 2020202020202020 2020000100000328 .....(
0064(0040) 414C4C41494E2020 2020202020202020 ALLAIN
0080(0050) 2020202020202020 200002000006E041 ....._A
0096(0060) 4C4C414E20202020 2020202020202020 LLAN
0112(0070) 2020202020202020 000100000BA8414D .....¿AM
0128(0080) 42524F4953202020 2020202020202020 BROIS
0144(0090) 2020202020202000 0100000D40414E44 .....@AND
0160(00A0) 5245202020202020 2020202020202020 RE
0176(00B0) 2020202020200001 00001070414E4452 .....pANDR
0192(00C0) 452F4D415254494E 4F20202020202020 E/MARTINO
0208(00D0) 2020202020000100 0002A0414E445245 .....áANDRE
0224(00E0) 4920202020202020 2020202020202020 I
0240(00F0) 2020202000010000 0F60414E454E2020 .....`ANEN
0256(0100) 2020202020202020 2020202020202020
0272(0110) 202020000100000E D8414E4749424155 .....+ANGIBAU
0288(0120) 4420202020202020 2020202020202020 D
0304(0130) 20200001000010F8 414E47494241554C .....°ANGIBAUL
0320(0140) 5420202020202020 2020202020202020 T
0336(0150) 20000100000DC842 454C4D4F4E544520 .....+BELMONTE
0352(0160) 2020202020202020 2020202020202020
0368(0170) 0001000005484245 4E4F495420202020 .....HBENOIT
0384(0180) 2020202020202020 2020202020202000 .
0400(0190) 0100000B20434143 494F4C4920202020 .... CACIOLI
0416(01A0) 2020202020202020 2020202020200001 ..
0432(01B0) 000011804341494C 4C45202020202020 ...ÇCAILLE
0448(01C0) 2020202020202020 2020202020000100 ...
0464(01D0) 00120843414C494E 4520202020202020 ...CALINE
0480(01E0) 2020202020202020 2020202000010000 ....
0496(01F0) 129044414E4C4550 414E202020202020 .ÉDANLEPAN

secteur 0000025
0000(0000) 2020202020202020 202020000100000C .....
0016(0010) B844554649474E4F 5520202020202020 +DUFIGNOU
0032(0020) 2020202020202020 2020000100000878 .....x
0048(0030) 47524F5049474E41 5244202020202020 GROPIGNARD
0064(0040) 2020202020202020 20000100000C304A .....0J
0080(0050) 414F55454E202020 2020202020202020 AOUEN
0096(0060) 2020202020202020 0001000001084B41 ......KA
0112(0070) 524D414E4E202020 2020202020202020 RMANN
0128(0080) 2020202020202000 01000004384C2748 .....8L'H
0144(0090) 55494C4C49455220 2020202020202020 UILLIER
0160(00A0) 2020202020200001 0000090000000000 ..........
0176(00B0) 0000000000000000 0000000000000000 ................
. . .
. . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000001800000 .............Ç..

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 78


ESAT-DI [LRE] page XV-79
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000026
0000(0000) 01384C4142415420 2020202020202020 .8LABAT
0016(0010) 2020202020202020 2020200001000002 .....
0032(0020) 184C414641524755 4520202020202020 .LAFARGUE
0048(0030) 2020202020202020 2020000100000A10 ......
0064(0040) 4C41544555522020 2020202020202020 LATEUR
0080(0050) 2020202020202020 200001000003B04C ....._L
0096(0060) 4156414C4C415244 2020202020202020 AVALLARD
0112(0070) 2020202020202020 000100000A984C41 .....ÿLA
0128(0080) 564F495349455220 2020202020202020 VOISIER
0144(0090) 2020202020202000 01000004C04C4520 .....+LE
0160(00A0) 424F5542454E4E45 4320202020202020 BOUBENNEC
0176(00B0) 2020202020200001 00000FE84D414445 ....._MADE
0192(00C0) 4320202020202020 2020202020202020 C
0208(00D0) 2020202020000100 0006584D41525449 .....XMARTI
0224(00E0) 4E20202020202020 2020202020202020 N
0240(00F0) 2020202000010000 09884D4541552020 .....êMEAU
0256(0100) 2020202020202020 2020202020202020
0272(0110) 2020200001000005 D04D45524345524F .....-MERCERO
0288(0120) 4E20202020202020 2020202020202020 N
0304(0130) 2020000100000E50 0000000000000000 .....P........
0320(0140) 0000000000000000 0000000000000000 ................
. . . . . . .
. . . . . . .
. . . . . . .
0496(01F0) 0000000000000000 0000000000000000 ................

secteur 0000027
0000(0000) 0000000000000000 0000000000000000 ................
0016(0010) 0000000000000000 0000000000000000 ................
. . .
. . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000001000000 ................

secteur 0000028
0000(0000) 8012000000000000 07F0000007680000 Ç........_...h..
0016(0010) 0080202020202020 2020202020200001 .Ç ..
0032(0020) 00000D4064656D70 2F6C766C2F646667 ...@demp/lvl/dfg
0048(0030) 2F64656D702F6665 7861202020202020 /demp/fexa
0064(0040) 2020000100001180 6466672F63732F64 .....Çdfg/cs/d
0080(0050) 652F64736F202020 2020202020202020 e/dso
0096(0060) 2020202020200001 000012906466672F .....Édfg/
0112(0070) 63732F64652F6473 6F20202020202020 cs/de/dso
0128(0080) 2020202020202020 2020000200000C30 .....0
0144(0090) 6466672F63732F64 732F6472742F7269 dfg/cs/ds/drt/ri
0160(00A0) 7461202020202020 2020202020200001 ta ..
0176(00B0) 0000120864676172 2F63732F622E7065 ....dgar/cs/b.pe
0192(00C0) 7273202020202020 2020202020202020 rs
0208(00D0) 2020000100000218 646761722F63732F ......dgar/cs/
0224(00E0) 6472742F72697461 2020202020202020 drt/rita
0240(00F0) 2020202020200001 000005D064676172 .....-dgar
0256(0100) 2F63732F73612F63 6174202020202020 /cs/sa/cat
0272(0110) 2020202020202020 2020000100000108 ......
0288(0120) 646761722F63732F 73612F7069612020 dgar/cs/sa/pia
0304(0130) 2020202020202020 2020202020200001 ..
0320(0140) 0000019064676172 2F63732F73672020 ...Édgar/cs/sg
0336(0150) 2020202020202020 2020202020202020
0352(0160) 20200001000003B0 646761722F63732F ....._dgar/cs/
0368(0170) 73672F6167202020 2020202020202020 sg/ag
0384(0180) 2020202020200001 0000043864676172 .....8dgar
0400(0190) 2F63732F73742020 2020202020202020 /cs/st
0416(01A0) 2020202020202020 20200001000002A0 .....á
0432(01B0) 646761722F63732F 7374202020202020 dgar/cs/st
0448(01C0) 2020202020202020 2020202020200002 ..
0464(01D0) 0000032864676172 2F6C766C2F616720 ...(dgar/lvl/ag
0480(01E0) 2020202020202020 2020202020202020
0496(01F0) 2020000100000FE8 646761722F6C766C ....._dgar/lvl

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 79


ESAT-DI [LRE] page XV-80
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

secteur 0000029
0000(0000) 2F73612F63657220 2020202020202020 /sa/cer
0016(0010) 2020202020200001 00000ED864676172 .....+dgar
0032(0020) 2F6C766C2F73612F 6365722020202020 /lvl/sa/cer
0048(0030) 2020202020202020 2020000200000CB8 .....+
0064(0040) 646761722F6C766C 2F73742020202020 dgar/lvl/st
0080(0050) 2020202020202020 2020202020200001 ..
0096(0060) 00000F6064676620 2F63732F6266706D ...`dgf /cs/bfpm
0112(0070) 2020202020202020 2020202020202020
0128(0080) 20200001000004C0 0000000000000000 .....+........
0144(0090) 0000000000000000 0000000000000000 ................
0160(00A0) 0000000000000000 0000000000000000 ................
0176(00B0) 0000000000000000 0000000000000000 ................
0192(00C0) 0000000000000000 0000000000000000 ................
0208(00D0) 0000000000000000 0000000000000000 ................
0224(00E0) 0000000000000000 0000000000000000 ................
0240(00F0) 0000000000000000 0000000000000000 ................
0256(0100) 0000000000000000 0000000000000000 ................
0272(0110) 0000000000000000 0000000000000000 ................
0288(0120) 0000000000000000 0000000000000000 ................
0304(0130) 0000000000000000 0000000000000000 ................
0320(0140) 0000000000000000 0000000000000000 ................
0336(0150) 0000000000000000 0000000000000000 ................
0352(0160) 0000000000000000 0000000000000000 ................
0368(0170) 0000000000000000 0000000000000000 ................
0384(0180) 0000000000000000 0000000000000000 ................
0400(0190) 0000000000000000 0000000000000000 ................
0416(01A0) 0000000000000000 0000000000000000 ................
0432(01B0) 0000000000000000 0000000000000000 ................
0448(01C0) 0000000000000000 0000000000000000 ................
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 00000000FEFF0000 ............__..

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 80


ESAT-DI [LRE] page XV-81
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

XV.D.1.3 Exemple de recherche à partir d’une clé secondaire

ex : chercher les personnes dont la fonction est instructeur

On va dans la table des clés du KEY INFORMATION RECORD à la 4 ème entrée car les clés sont dans l’ordre de création (qui
est celui de la phrase select fournie en D11) ; on trouve dans le secteur 2 :

0032(0020) 0000100000800400 0400000C00001400 .....Ç..........


0048(0030) 00801E003500000C 0000180000801E00 .Ç..5........Ç..

000C => l’entrée fait 12 caractères


1400=512010 = adresse du ROOT NODE 5120 /512 = 10 reste 0 => le ROOT NODE pour cette clé se trouve au secteur n° 10 à
partir du carcatère n° 0.

Dans le ROOT NODE (secteur 10 et 11) on a :

secteur 0000010
0000(0000) 804A696E73747275 6374657572202020 ÇJinstructeur
0016(0010) 2020202020202020 2020202020202020
0032(0020) 000400002000FFFF FFFFFFFFFFFFFFFF .... .__________
0048(0030) FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF ________________
0064(0040) FFFFFFFFFFFF0000 2400000000000000 ______..$.......
0080(0050) 0000000000000000 0000000000000000 ................
. . .
. . .

secteur 0000011
0000(0000) 0000000000000000 0000000000000000 ................
. . .
. . .
0480(01E0) 0000000000000000 0000000000000000 ................
0496(01F0) 0000000000000000 0000000003810000 .............ü..

81 => 1 et 000 0001 => on n’est pas sur un LEAF NODE

ad. de la dernière entrée = 004A (= carc n° 74)

la valeur de la clé sur 30c est justement « instructeur »


On va trouver le double n°4 (numéro fixe attribué lors de la création)
Pour toutes les clés de valeur <= « instructeur » il faut aller chercher dans le node de niveau inférieur à l’adresse 00 00 20 00 =
8192 10 => secteur 16 carc. n° 0.

Dans le node suivant qui est de dernier niveau (secteur 16 et 17) on trouve :

secteur 0000016
0000(0000) 821E61646A6F696E 7420616E74656E6E é.adjoint antenn
0016(0010) 6520732E74202020 2020202020202020 e s.t
0032(0020) 0001000003286172 6D75726965722020 .....(armurier
0048(0030) 2020202020202020 2020202020202020
0064(0040) 2020202000010000 10F862726F636865 .....°broche
. . .
. . .
0464(01D0) 000100000B206782 72616E7420636572 ..... gérant cer
0480(01E0) 636C652020202020 2020202020202020 cle
0496(01F0) 2020202000010000 0ED8696E73747275 .....+instru

secteur 0000017
0000(0000) 6374657572202020 2020202020202020 cteur
0016(0010) 2020202020202020 0004000009000000 ........
0032(0020) 0000000000000000 0000000000000000 ................
0048(0030) 0000000000000000 0000000000000000 ................
0064(0040) 0000000000000000 0000000000000000 ................
. . .
. . .
0464(01D0) 0000000000000000 0000000000000000 ................
0480(01E0) 0000000000000000 0000000000000000 ................

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 81


ESAT-DI [LRE] page XV-82
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

0496(01F0) 0000000000000000 0000000003800000 .............Ç.. => LEAF NODE

il ne reste plus qu’à balayer séquentiellement les entrées jusqu’à trouver « instructeur » :
on obtient l’entrée suivante :

696E73747275637465757220202020202020202020202020202020202020 0004 00000900


<------------------------instructeur = valeur de la clé---------------------------------->

il s’agit du double n° 4 (le 4ème créé)

l’adresse dans les données est 900 = 2304 10 => (en divisant par 512) secteur 4 caractère 256 dans le fichier des données : on
trouve une personne « instructeur »

secteur 0000004
0000(0000) 4E20202020202020 2020202020202020 N
0016(0010) 2020206A65616E2D 6C75632020202020 jean-luc
0032(0020) 2020202020202069 6E73747275637465 instructe
0048(0030) 7572202020202020 2020202020202020 ur
0064(0040) 2020202020646766 202F63732F64732F dgf /cs/ds/
0080(0050) 6472732F72656E73 2020202020202020 drs/rens
0096(0060) 202020436573736F 6E2D73827669676E Cesson-sévign
0112(0070) 8220202020202020 408533323031696E é @à3201in
0128(0080) 732044554649474E 4F55202020202020 s DUFIGNOU
0144(0090) 2020202020202020 2020206D61726365 marce
0160(00A0) 6C20202020202020 2020202020202069 l i
0176(00B0) 6E73747275637465 7572202020202020 nstructeur
0192(00C0) 2020202020202020 2020202020326369 2ci
0208(00D0) 652F6C766C202020 2020202020202020 e/lvl
0224(00E0) 2020202020202020 2020204C6176616C Laval
0240(00F0) 2020202020202020 2020202020202020
0256(0100) 408533363434636E 65204C274855494C @à3644cne L'HUIL
0272(0110) 4C49455220202020 2020202020202020 LIER
0288(0120) 2020206D61726365 6C20202020202020 marcel
0304(0130) 2020202020202069 6E73747275637465 instructe
0320(0140) 7572202020202020 2020202020202020 ur
0336(0150) 2020202020646766 202F63732F64732F dgf /cs/ds/
0352(0160) 646D73692F737220 2020202020202020 dmsi/sr
0368(0170) 202020436573736F 6E2D73827669676E Cesson-sévign
0384(0180) 8220202020202020 4085333635306164 é @à3650ad
0400(0190) 63204D415254494E 2020202020202020 c MARTIN
. . .
. . .

on obtient ainsi , les personnes « instructeur » dans l’ordre de leur création

NB : il est étonnant de constater que les secteurs 16 et 17 du fichier des index ne contiennent qu’une clé « instructeur »
alors qu’il reste de la place.
D’autre part , les autres clés « instructeur » se trouvent sur les secteurs 18 et 19.
Ces deux remarques semblent montrer que , au plus bas niveau , pour une clé donnée , il peut y avoir plusieurs nodes et
donc que l’arbre n’est pas purement binaire.
Le système , pour trouver tous les clés « instructeur » après avoir trouvé directement la première , cherche
séquentiellement dans les nodes suivants (tant que même n° d’index et leaf-node),

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 82


ESAT-DI [LRE] page XV-83
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

vérification par programme

IDENTIFICATION DIVISION.
PROGRAM-ID. listins.
AUTHOR. IC lre.
environment division.
input-output section.
file-control.
select fimpri assign to "c:\laf\cobol\indexe\resins.txt".
select fcadres assign to "c:\laf\cobol\indexe\vidcad.don"
organization indexed
access sequential
record key is btph
alternate record key bnom with duplicates
alternate record key bgrade with duplicates
alternate record key bfonction with duplicates
alternate record key bservice with duplicates
alternate record key bsite with duplicates
file status wst.

DATA DIVISION.
file section.
fd fimpri linage is 30.
1 sligne pic x(80). liste des personnes dont la fonction = instructeur
fd fcadres.
1 benreg.
3 btph pic xxxx.
3 bgrade pic xxxx.
3 bnom pic x(25).
3 bprenom pic x(20). 3644 L'HUILLIER marcel
3 bfonction pic x(30). 3650 MARTIN yves
3 bservice pic x(30). 3651 LAFARGUE jean-pierre
3 bsite pic x(20).
3671 LAVALLARD michel
WORKING-STORAGE SECTION. 3411 DANLEPAN émile
77 wctf pic 9 value 0. 5207 GROPIGNARD jules
88 ff value 1.
77 wchoix pic x(25) value "LAG". 3201 DUFIGNOU marcel
1 wst.
3 wstk1 pic x.
3 wstk2.
5 wstkbin pic 99 comp-x. fin de fichier file status = 00
PROCEDURE DIVISION.
debut.
open i-o fcadres output fimpri
move "liste des personnes dont la fonction = instructeur"
to sligne
write sligne
move spaces to sligne
write sligne after 3
move "instructeur" to bfonction
start fcadres key is >= bfonction
invalid key
display "je n'ai trouvé personne"
not invalid key
read fcadres next record
at end
set ff to true
end-read
perform until bfonction not = "instructeur" or ff
move btph to sligne
move bnom to sligne(6:)
move bprenom to sligne(40:)
write sligne
read fcadres next record
at end
set ff to true
end-read
end-perform
end-start
move "fin de fichier" to sligne
move "file status = " to sligne(15:)
move wst to sligne(30:)
write sligne after 3
close fcadres fimpri
stop run.

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 83


ESAT-DI [LRE] page XV-84
Cours CBL-85 CHAPÎTRE 15 Les fichiers en organisation séquentielle-
indexée
ANS85/m-focus 11/10/2009 -
11/10/2009

XV.D.2 Les problèmes de compression

[ sera traité ultérieurement ]

Cours de COBOL-85 L’organisation séquentielle-indexée Chapître XV - page 84

You might also like