Définition de procedures dans un fichier externe ? [Résolu] |
problème de définition de procédures externes bis |
BERTRAND
|
Bonjour,
je reviens à vous, toujours sur le même sujet, car après avoir retourné le problème dans tous les sens, je ne trouve pas de solution à la définition de procédures externes. Même sur le très simple exemple suivant, cela ne fonctionne pas... _________________________________________ *FICHIER PRINCIPAL : Main.dgibi UTIL PROC 'Procext.proc' ; aa = 1; bb = 3; cc = ESSAIP aa bb ; LIST cc; FIN; _________________________________________ * FICHIER 'Procext.proc' (localisation des procédures) $$$$ ESSAIP 'DEBPROC' ESSAIP !ii*'ENTIER' !jj*'ENTIER' ; !k = !ii + !jj ; 'FINPROC' !k ; $$$$ _________________________________________ quelqu'un sait il si il existe des problèmes de définitions de procédures externes sur CASTEM 2007 ? comment faire pour implémenter des procédures externes ? Merci d'avance pour vos réponses. David. |
||||||||||||
|
Procedure externe |
Vero
|
Bonjour Bertrand,
J'ai le meme problème que toi. Impossible de le regler. As-tu resolu le problème depuis ce message? A+ Vero |
||||||||||||
|
Pascal Roux
|
Bonjour,
pour utiliser les procédures externes, il y a une astuce qu'il fallait savoir ! 1) Créer vos procédures avec les symboles $$$$ comme précisé dans la documentation. 2) Sauver dans un fichier nommé comme vous voulez : procedures.dgibi par exemple. 2) Lancer Castem "à vide" et taper : UTIL PROC 'procedures.dgibi'; 3) QUITTER CASTEM !! Et non pas essayer d'utiliser la procédure. Car évidement ça ne marche pas. Je pense que cela vient du fait que Castem est toujours initialisé avec le fichier UTILPROC de la session précédente. 4) Vérifier en éditant le fichier UTILPROC que vos procédures ont bel et bien été enregistrées à l'intérieur. 5) Relancer Castem avec votre programme principal : cast.bat main.dgibi 6) Et là, vous pouvez appeler les procédures de votre fichier externe. Il y a un inconvénient si l'on veut utiliser des procédures dans des fichiers ou des répertoires différents (en général, c'est l'intérêt) : on ne peut faire UTIL PROC QUE POUR UN SEUL fichier. Donc il faut concaténer les fichiers externes en un seul : cat fich1.dgibi fich2.dgibi > procedures.dgibi UTIL PROC 'procedures.dgibi' Pratique pour utiliser IGCAST ET ses procédures perso. EN RESUME : Pour se faciliter la vie, on peut se créer un script qui réalise une sorte de "compilation" de ses sources .dgibi a) créer un fichier actualise.dgibi qui contient juste : UTIL PROC 'procedures.dgibi'; FIN; b) sur Unix (ou Cygwin sur Windows), créer un script bash nommé actu : #!/bin/bash # # Script bash nommé actu pour actualiser ses # procédures de façon automatique \rm -f UTILPROC \rm -f procedures.dgibi cat proc1.dgibi proc2.dgibi ... procn.dgibi > procedures.dgibi cast.bat actualise.dgibi # Fin du script c) chmod u+x actu Puis, à chaque modification de ses procédures externes : actu && cast.bat main.dgibi Je pense qu'il faut appliquer une démarche similaire pour le fichier des notices (pour créer sa doc associée à ses procs). Voilà ! J'ai mis 3 mois pour trouver la raison pourquoi l'utilisation des procs externe ne fonctionnait pas. C'est tout le problème de Castem : une documentation un peu trop avare de "salive" pour expliquer comment l'utiliser. Des schémas, des croquis, des exemples pour CHAQUE commandes Castem seraient fort utiles ! ------------------ Pascal Roux Post Doc en dynamique des structures à l'INRA |
||||||||||||
|
Procedure externe |
Vero
|
Merci beaucoup Pascal. Tes explications meriteraient d'etre incluses dans la doc officielle (lien contacts sur le site cast3m).
Vero |
||||||||||||
|
lguenhael
Administrateur
|
Bonjour,
Il est bien précisé dans la doc Cast3M qu'en sortie d'UTIL PROC (ou UTIL NOTI) "Un fichier à accès direct de nom UTILPROC ou UTILNOTI est créé, il sera automatiquement lu lors des exécutions suivantes du programme". Ceci dit je préfère utiliser OPTI DONN et là en revanche la documentation est plus que limiter sur cette fonction. Elle permet enfaite de fermer le programme actuel et d'en démarrer un nouveau sans modifier l'état de la mémoire. Ainsi on peut, suivant la méthode présenté ci-après, lancer un ou plusieurs "pré-programmes" qui peuvent contenir des procédures ou tout autre chose sans avoir à relancer quoi que ce soit : Programme principal :
Sous programmes :
Cordialement. |
||||||||||||||||
|
Définition de procedures dans un fichier externe ? [Résolu] |
|
||
Powered by phpBB Forum © phpBB Group
Design by phpBBStyles.com | Styles Database.
Content © RDforum.free.fr/Cast3M
Design by phpBBStyles.com | Styles Database.
Content © RDforum.free.fr/Cast3M