Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 183 186

  • Nb. de membres 187
  • Nb. d'articles 1 270
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» Question erreurs et arexx

Question erreurs et arexx#1828

3Contributeur(s)
thelliersinisruszzd10h
3 Modérateur(s)
K-LElwoodcorto
thellier thelliericon_post
Hello
Comme je l'ai écris récemment j'essaye de faire fonctionner Microbe3D depuis Arexx ...mais j'y connais rien en arexx
(Pour l'instant j'écris le wrapper Microbe3D <-> arexx mais rien n'est utilisable en arexx à cette heure)

D'après ce que j'ai compris (?)
Quand on appelle une fonction de .library depuis arexx alors Il revient dans le registre d0 le code erreur et dans a1 le résultat , non ?

Admettons une fonction de Microbe3D comme U3D_Read() qui lis un fichier
Normalement elle renvoye le pointeur sur l'objet3D qu'elle vient de lire ou 0 si elle a rien lue (genre le fichier existe pas)

(Note: Pour moi ne pas réussir à lire un fichier avec U3D_Read() n'est pas une erreur fatale, juste une info)

La question: Dois je mettre une erreur arexx dans d0 si U3D_Read() renvoye 0 (c'est à dire si l'objet est pas lu)
Arexx va t'il considérer ça comme une erreur fatale ou pas ? cad si je renvoie une erreur arexx le prog s'arrête il ou pas ? arexx gueule t'il ?
Bref a t'on besoin d'erreur rexx dans ce cas ?

Alain










sinisrus sinisrusicon_post
salut alain,

je veux bien t'aider pour résoudre ton problème.

mais j'aimerai savoir si ton problème vien du côté arexx ou côté de la library?

si c'est côté arexx colle ton code ici même avec une explication de ce que tu veux faire par ce que j'ai pas compris ton problème :-)
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
zzd10h zzd10hicon_post

ARexx ne plante pas quand un fichier ne peut être ouvert.
C'est à nous de tester la valeur de retour

Il renvoie "1" si OPEN OK et "0" si OPEN KO.

Le REXX ci-dessous renvoie "1" car "T:usb.log" est OK.
Le REXX ci-dessous renvoie "0" si Fichier = "T:usb.XXXlogXXX est KO mais pas de plantage du REXX..


/* REXX */

Fichier = "T:usb.log"
rc = OPEN('FILE',Fichier,'R')
say "rc="rc

if rc = 1,
then do
ligne = readln(FILE)
say ligne
end
else say "lecture KO"

exit
thellier thelliericon_post
Merci a vous deux

Ma question est dans le cas ou arexx appele une fonction d une
library : y a t il besoin de code d erreur arexx si la fonction echoue?
A mon avis non.

Alain
sinisrus sinisrusicon_post
Si la fonction echou tu veux dire si elle n'est pas trouver?
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
zzd10h zzd10hicon_post
Alain :

A mon avis, dans le cas d'un appel depuis un REXX à une fonction contenue dans ta library, il faut bien savoir le Code Retour, non ?

Sans ce CR, comment conditionner le REXX ?

Si j'appele ton U3D_Read depuis un REXX, j'aimerais bien savoir si le fichier a pu être ouvert / lu avant de tenter de travailler sur les données de ceui-ci...

C'était ça la question ou pas ?
thellier thelliericon_post
C'est à dire que Arexx renvoie 2 valeurs

1) la valeur de retour de la fonction de la library externe (ici Microbe3D/U3D_Read renvoie le pointeur de l'objet3d ou 0 )
2) un code erreur arexx

J'aurai tendance à penser que le 2) peut être mis à "OK" à tout les coups et que c'est à la charge du codeur arexx de vérifier si la 1) est ok et de décider quoi faire

En fait mon inquiétude c'est si U3D_Read("monobjet.obj"); renvoie 0 et en plus une erreur arexx alors le prog arexx va peut être s'arrêter (en fait j'en sais rien ?)ou hurler des erreurs (en fait j'en sais rien ?)alors que au final c'est pas si grave que un fichier se charge pas


BTW le wrapper arexx<-> microbe3d se compile presque

Alain


Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme