Les ordres d'entrée/sortie en RPG/400 LECTURE: FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ READ Fichier (DS) N xxyy Format lecture séquentielle d'un fichier. Si facteur 2 contient un nom de fichier en interne vous pouvez indiquer un nom de DATA STRUCTURE (pour placer l'enregistrement). Si facteur 2 contient un nom de fichier externe,l'enregistrement suivant sera lu (quelque soit son format) Si facteur 2 contient un nom de format, l'enregistrement suivant AYANT LE FORMAT demandé sera lu. N en position 53 demande une lecture sans verrouillage (UPDAT impossible) xx = ON en cas d'erreur d'entrée/sortie yy = ON en fin de fichier |
FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ C READPfichier (DS) N xxyy Format Même caractéristique que READ,sauf que la lecture est faite en ordre inverse (du dernier au premier) et donc yy = début de fichier. FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ Arg. CHAINFichier (DS) Nzzxx Format Accès direct/même caractéristiques pour facteur 2,ZR et N que READ Si le fichier est utilisé sur le rang (sans clé ou non utilisée), facteur 1 doit contenir un n° de rang (const. ou zone num. 0 décimales) Si le fichier est utilisé avec clé, facteur 1 doit contenir un argument de recherche comparable à la clé du fichier 1/ nom de zone (même si la clé est multiple=recherche sur clé partielle) 2/ nom de KLIST,pour clé composée |
++++ FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ C nom KLIST ^ KFLD clé1 à utiliser en --------- ! KFLD clé2 facteur 1 du CHAIN ... Les zones KFLD doivent être comparables une à une avec les clés du fichier (même définition, même longueur), le nom n'importe pas. suite du CHAIN zz = ON si l'enregistrement n'est pas trouvé Si plusieurs enregistrements correspondent à l'argument, le premier (dans l'ordre des clés) est retourné au programme. xx = ON en cas d'erreur d'entrée/sortie. FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ Arg. SETLLFichier aabbcc Positionnement (pas de lecture) sur le premier enregistrement correspondant à l'argument de recherche Si aucun enregistrement ne correspond, positionnement sur le premier enreg. ayant une clé supérieure à l'argument. |
aa = non positionné (arg. supérieur à la plus grande des clés) bb = erreur E/S cc = positionné par égalité exemple : F1 Codop F2 >><<== ............... 'A1' SETLLfichier 80 81 : rang ! clé : --> position sur rang 1 (80 = OFF, 81 = ON) : 1 ! A1 : : 3 ! A2 : 'A3' SETLLfichier 80 81 : 2 ! B2 : --> position sur rang 2 (80 = OFF, 81 = OFF) : 5 ! C1 : : 6 ! C1 : 'FF' SETLLfichier 80 81 : 4 ! D1 : --> position sur aucun enreg (80 = ON,81 = OFF) :.............: 'C1' SETLLfichier 80 81 --> position sur rang 5 (80 = OFF, 81 = ON) |
FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ Arg. SETGTFichier aabb Positionnement (pas de lecture) sur le premier enregistrement ayant une clé supérieure à argument. (pratique pour lire le dernier enregistrement d'un groupe =SETGT + REDPE) aa = non positionné (arg. supérieur à la plus grande des clés) bb = erreur E/S exemple : F1 Codop F2 >><<== ............... 'A1' SETGTfichier 80 : rang ! clé : --> position sur rang 3 (80 = OFF) : 1 ! A1 : : 3 ! A2 : 'A3' SETGTfichier 80 : 2 ! B2 : --> position sur rang 2 (80 = OFF) : 5 ! C1 : : 6 ! C1 : 'FF' SETGTfichier 80 : 4 ! D1 : --> position sur aucun enreg (80 = ON) :.............: 'C1' SETGTfichier 80 --> position sur rang 4 (80 = OFF) |
FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ Arg. READEFichier N xxyy Lecture séquentielle de l'enregistrement suivant, SI la clé de l'enreg. est identique à argument (clé complète ou clé partielle), SINON fin de fichier "logique" signalée par yy = ON. FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ Arg. REDPEFichier N xxyy Idem READE, mais en lecture arrière (yy = "début de fichier") FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ FEOD Fichier yy FERMETURE/OUVERTURE logique du fichier, force l'écriture sur disque des opération d'E/S en attente pour ce fichier. Le nombre d'opérations E/S en attente pour ce fichier dépend du facteur de groupage. Voir aussi paramètres FRCRATIO sur fichier B de D. |
FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ POST Fichier (infds) yy Force la Màj de l'INFDS (partie I/O feedback area) pour ce fichier si une INFDS est déjà associée à ce fichier (via spécif F), le nom de l'INFDS en ZR est facultatif. Par défaut la mise à jour de l'INFDS est réalisée en même temps que le transfert PHYSIQUE des données (fonction du facteur de groupage). FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ UNLCKFichier yy Déverrouille l'enregistrement verrouillé par le programme en cours pour ce fichier. Le fichier doit être ouvert en mise à jour (U). Si aucun enregistrement n'est verrouillé, aucune erreur n'est signalée. FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ (*NOKEY) CLEARFormat Réinitialise une structure de donnée (Format de fichier par exemple) Si *NOKEY est indiqué en facteur 1, les zones clé de ce fichier NE SONT PAS remises à l'état initial. |
FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ WRITEFormat (DS) xxyy Fichier Ecriture dans un fichier d'un nouvel enregistrement Pour les fichiers en interne utiliser Fichier en facteur 2 et un nom de DS en zone résultat. Pour les fichiers en externe, préférer la syntaxe avec nom de format, évitant les litiges pour les fichiers multi-formats (LF, PRTF, DSPF) FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ UPDATFormat (DS) xxyy Fichier Mise à jour du dernier enregistrement lu (même syntaxe que WRITE) FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ (arg.) DELETFormat (DS) xxyy Fichier Suppression d'un enregistrement (si facteur 1 à blanc = dernier enreg lu) Si facteur 1 est renseigné = CHAIN + DELET Même syntaxe que WRITE. |
FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ EXFMTFormat xx POUR UN DSPF : lecture puis écriture d'un format. FMT C CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+++++ READCFormat xx POUR UN DSPF : lecture séquentielle des enregistrements MODIFIES d'un format d'enregistrement SOUS-FICHIER Il est aussi possible d'accéder à ces enregistrements en accès direct avec CHAIN en indiquant en facteur 1, un n° de rang. et voir COMIT et ROLBK pour les fichiers B de D sous contrôle de validation. |