RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 tuto sur les fichiers relatifs

Forum : COBOL
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ COBOL

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM COBOL

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
time
Nouveau membre
Avatar de time
Inscrit : 12/02/2007
Messages : 3
Message
#123925
Posté le 12/02/07 à 16:30
Bonjour! Smiley
Je suis à la recherche d'un tuto sur les fichiers relatifs, j'ai des connaissance très minime en cobol et c'est la première fois que je dois utiliser et créer des fichiers autres que séquentiel. Merci d'avance

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

HULK77
Modérateur :
- Cobol
Avatar de HULK77
Inscrit : 12/08/2004
Messages : 160
Message
#124081
Posté le 14/02/07 à 09:42
Smiley Salut Time,

Voiçi quelques explications sur les différents types de fichiers pour le COBOL.

Fichiers indexés

Dans un fichier d'organisation indexée, les enregistrements sont identifiés par la valeur de leur clé. La clé est un champ de l'enregistrement.
Trois modes d'accès sont possibles avec les fichiers indexés
• accès aléatoire (random) : l'accès (read, write, rewrite, delete) se fait en précisant la clé de l'enregistrement.
• accès séquentiel (séquential) l'accès se fait dans l'ordre des enregistrements. L'instruction start permet de se repositionner sur un enregistrement dont on connait la clé.
• accès dynamique (dynamic) combinaison des deux modes ci-dessus.
3.1 Déclaration d'un fichier
environment division.
input-output-section.
file-control.
select F-VOITURES
assign to "/donnees/voitures"
organization indexed
access random
record key PLAQUE.
...
data division.
file section.
fd F-VOITURES.
01 ENR-VOITURE.
02 PLAQUE pic X(10).
02 MARQUE pic X(10).
02 MODELE pic X(10).
02 COULEUR pic X(10).
3.2 Accès aléatoire (random)
open
Un fichier indexé peut être ouvert dans un des modes suivants : input, output, ou i-o (abréviation de input-output). Exemple:
open i-o F-VOITURES.
read
move "123 ABC 45" to PLAQUE.
read F-VOITURES
invalid key
display "pas de voiture dans le fichier"
not invalid key
display "modele = " MODELE
end-read
write
move "123 ABC 45" to PLAQUE.
move "SIMCA" to MARQUE.
move "1000" to MODELE.
...
write ENR-VOITURE
invalid key
display "voiture deja enregistree."
not invalid key
display "ok."
end-write.
rewrite
move "123 ABC 45" to PLAQUE.
read F-VOITURES
invalid key
display "voiture absente"
not invalid key
move "BLEU" to COULEUR
rewrite ENR-VOITURE
invalid key
display "*** ERREUR INTERNE (rewrite)"
not invalid-key
display "ok."
end-rewrite
end-read.
delete
move "123 ABC 45" to PLAQUE.
delete F-VOITURES
invalid key
display "voiture absente"
not invalid key
display "ok"
end-delete.
close
close F-VOITURES.
3.3 Accès séquentiel (séquential)
En accès séquentiel, l'ouverture peut se faire dans l'un des 4 modes : input, output, i-o, extend. Start permet de se positionner sur un enregistrement. L'instruction delete n'est pas autorisée.
read
read F-VOITURES next
at end
....
not at end
....
end-read.
Les enregistrements sont lus dans l'ordre dans lequel ils sont stockés dans le fichier. Cet ordre dépend de l'implémentation, ce n'est pas forcément l'ordre des clés.
write, rewrite
write ENR-VOITURE.
Le rewrite ne peut se faire que si on a lu préalablement un enregistrement.
start
move "123 XY 89" to PLAQUE.
start F-VOITURES, key = PLAQUE
invalid key
move FAUX to TROUVE
not invalid key
read F-VOITURES next
at end
move FAUX to TROUVE
not at end
move VRAI to TROUVE
end-read
end-start.
Le critère de comparaison peut être =, > ou >=.
3.4 Accès dynamique (dynamic)
Un fichier dynamic ne peut pas être ouvert en mode extend.
Instructions disponibles
• open fichier mode
• start fichier key .... invalid key ...
• read fichier next at end ...
• read fichier invalid key ...
• write enregistrement invalid key ...
• rewrite enregistrement invalid key ...
• delete fichier invalid key ...
• close fichier
3.5 Clés multiples
Exemple:
environment division.
input-output-section.
file-control.
select F-VOITURES
assign to "/donnees/voitures"
organization indexed
access random
record key PLAQUE
alternate record key MARQUE with duplicates.
...
procedure division.
...
move "PEUGEOT" to MARQUE.
start F-VOITURES key = MARQUE
invalid key
display "Pas de Peugeot"
not invalid key
move FAUX to FIN-FICHIER
perform until FIN-FICHIER = VRAI
read F-VOITURES next
at end
move VRAI to FIN-FICHIER
not at end
if MODELE = "403" then
display PLAQUE, MODELE
end-if
end-read
end-perform
end-start.



4. Fichiers relatifs

Un fichier d'organisation relative est une sorte de tableau dont les cases, indicées de 1 à n, contiennent un enregistrement ou rien.
Les fichiers relatifs ont beaucoup de points communs avec les fichiers indexés : modes d'accès (aléatoire, séquentiel, dynamique), modes d'ouverture (lecture, ecriture, lecture-écriture, extension).
Les différences principales sont que :
• la clé est nécessairement numérique (c'est le numéro de l'enregistrement),
• la clé n'est pas un champ de l'enregistrement,
• il n'y a pas de clé secondaire.
4.1 Déclaration d'un fichier
environment division.
input-output-section.
file-control.
select F-ARTICLES
assign to "/donnees/catalogue"
organization relative
access random
relative key NUMERO-ARTICLE.
...
data division.
file section.
fd F-ARTICLES.
01 ENR-ARTICLE.
02 DESIGNATION pic X(10).
02 PRIX-UNITAIRE pic 9(6)v99.
...
working-storage section.
77 NUMERO-ARTICLE pic 9(3).
4.2 Accès aléatoire (random)
Se fait en renseignant la clé, puis en lançant l'opération (READ, WRITE, REWRITE, DELETE) avec (obligatoirement) la clause INVALID KEY.
4.3 Accès séquentiel (sequential)
Les opérations autorisées sont
• READ fichier NEXT, AT END ...
• WRITE enregistrement
• REWRITE enregistrement
• START KEY condition clé, INVALID KEY ...
4.4 Accès dynamique (dynamic)
Combinaison des modes séquentiel et aléatoire:
• READ fichier, INVALID KEY ...
• READ fichier NEXT, AT END ...
• WRITE enregistrement INVALID KEY ...
• REWRITE enregistrement INVALID KEY
• START KEY condition clé, INVALID KEY ...


Cordialement

HULK77
__________________________
Ma fabrique de chemises tourne à plein régime !!!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

time
Nouveau membre
Avatar de time
Inscrit : 12/02/2007
Messages : 3
Message
#124643
Posté le 18/02/07 à 12:04
merci beaucoup Hulk77, tu as répondu à ma question et même d'autres questions que je me posais sur les fichiers indexés ainsi que les différents modes de lecture possible, merci beaucoup pour ton aide. Smiley
biz

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

time
Nouveau membre
Avatar de time
Inscrit : 12/02/2007
Messages : 3
Message
#126050
Posté le 04/03/07 à 13:37
salut hulk77, j'ai bien avancé dans mon projet grâce à tes infos.
Là je suis un peu bloqué pour le moment, je n'arrive pas à recommencer une lecture d'un enregistrement à partir du début de mon fichier relatif. Existe-t-il une instruction qui permet de recommencer la lecture à partir du debut d'un fichier relatif (ainsi que pour indexé et relatif?). Je souhaite pas fermer mon fichier et le reouvrire juste après, c'est un moyen je pense mais c'est pas tres propre.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM COBOL



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.