Programme de construction de noms HSLREF, avec utilisation du code retour en vue d'une génération C pour un programme de type ADELIA. Ce programme est utilisé avec la DLL FCTSPECC.DLL.
Remarque : cet exemple est issu du domaine STANDARDS_BD de la base de connaissances BDCADEL (nouvelle base) d'Adélia Studio.
*-------------------------------------------------------------------------------------------------------------------------------- |
* OBJET : Calcul du nom du FICHIER PHYSIQUE, LOGIQUE et du FORMAT d'une entité logique |
*-------------------------------------------------------------------------------------------------------------------------------- |
* * Nouvelle version 06/94 : Accès au fichier des fichiers par nom de l'entité * |
* Nom du fichier physique |
= |
Nom trouvé dans le fichier des fichiers. |
* Nom du fichier logique |
= |
Remplacement du dernier caractère du nom de fichier par 'L1', ou par 'L' si la longueur est 10. |
* Nom du format |
= |
Remplacement du dernier caractère du nom de fichier par 'F'. |
* * Si l'entité n'est pas référencée, elle est créée dans le fichier des fichiers. * Les deux premiers caractères du nom de l'entité sont définis en tant que préfixe. * S'ils sont déjà utilisés pour un autre fichier, le programme les remplace par 'QQ' et remplit la description dans * le fichier des fichiers avec un avertissement. * * Si le nom du fichier physique n'existe pas, celui-ci est composé des 6 premiers caractères du nom de l'entité, * suivis d'un 'P' * |
*-------------------------------------------------------------------------------------------------------------------------------- |
* PARAMETRES : |
* |
- P_NOM_ENTITE |
(15 : E) |
* |
- P_NOM_FICHIER |
(10 : E/S) |
* |
- P_NOM_FORMAT |
(10 : E/S) |
* |
- P_NOM_FIC_LOG |
(10 : E/S) |
* |
- CODE_RET |
(1 : S) |
*-------------------------------------------------------------------------------------------------------------------------------- |
* RECEVOIR P_NOM_ENTITE P_NOM_FICHIER P_NOM_FORMAT P_NOM_FIC_LOG CODE_RET * * W_NOM_ENTITE = clé pour la vue VUE_FICHIER W_NOM_ENTITE = *BLANK W_NOM_ENTITE = P_NOM_ENTITE LIRE VUE_FICHIER * Détection d'une erreur E/S en lecture : positionnement du CODE_RET à '1' SI *IN90 = '1' CODE_RET = '1' TERMINER FIN SI VUE_FICHIER EXISTE TAB_NOM = *BLANK PLACER_TABLE FI_NOM_FICHIER TAB_NOM * * Récupération du nom du fichier physique * P_NOM_FICHIER = *BLANK P_NOM_FICHIER = FI_NOM_FICHIER * * Recherche de la longueur * W_LONG_NOM = &LONGUEUR_CHAINE(FI_NOM_FICHIER) * * Nom du format * TAB_NOM(W_LONG_NOM) = 'F' PLACER_TABLE TAB_NOM P_NOM_FORMAT * SI W_LONG_NOM = 10 * * Nom du fichier logique : "L" dans le dernier caractère * P_NOM_FIC_LOG = FI_NOM_FICHIER PLACER_A_DROITE 'L' P_NOM_FIC_LOG SINON TAB_NOM(W_LONG_NOM) = 'L' W_LONG_NOM = W_LONG_NOM + 1 TAB_NOM(W_LONG_NOM) = '1' PLACER_TABLE TAB_NOM P_NOM_FIC_LOG FIN SINON INIT_ZONES VUE_FICHIER FI_NOM_ENTITE = W_NOM_ENTITE PLACER_A_GAUCHE W_NOM_ENTITE W6_2 W6 = &TRANSFORMATION(W6_2;'_';'0') P_NOM_FICHIER = W6 /// 'P' P_NOM_FORMAT = W6 /// 'F' P_NOM_FIC_LOG = W6 /// 'L1' FI_NOM_FICHIER = W6 /// 'P' FI_ANN_CREATION = *ANNEE FI_MOI_CREATION = *MOIS FI_JOU_CREATION = *JOUR * WW_COD_PREFIXE = clé pour la vue VUE_FIC_PREFIXE PLACER_A_GAUCHE W_NOM_ENTITE WW_COD_PREFIXE LIRE VUE_FIC_PREFIXE * Détection d'une erreur E/S en lecture : positionnement du CODE_RET à '1' SI *IN90 = '1' CODE_RET = '1' TERMINER FIN SI VUE_FIC_PREFIXE N_EXISTE_PAS FI_COD_PREFIXE = WW_COD_PREFIXE FI_LIB_FICHIER = *JOB SINON FI_COD_PREFIXE = 'QQ' FI_LIB_FICHIER = *JOB // 'Doublon avec' // F2_NOM_ENTITE FIN CREER VUE_FICHIER * Détection d'une erreur E/S sur écriture : positionnement du CODE_RET à '2' SI *IN90 = '1' CODE_RET = '2' TERMINER FIN FIN |
Cliquez ci-dessous pour plus d'informations sur :