la precision concernant les erreurs

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

la precision concernant les erreurs

Message par Backup »

voila , dans le but de mettre a jour EPB sur la Version 5.11 et suivante

je charge mon prg de 11400 ligne dans Japbe avec Purebasic V5.11

je lance le code et voila ...

Image

content ... en dehors du fait que le message d'erreur ne me parait pas évident
je suis content de voir que l'erreur reproché n'est pas dans la ligne indiqué !
(ni meme dans la procedure s'y attachant )

je fais comment pour rechercher l'erreur dans un code de 11400 lignes
alors que je ne dispose d'aucunes informations supplémentaires sur l'erreur ?
la precision concernant le lieu de l'erreur aurai été un plus

le probleme c'est que le code n'a pas le temps de se lancer que l'erreur mal indiquée apparait ... :?
donc aucun moyen d'utiliser le debugger ....
le prg bloc sur cette ligne .... et démerde toi

une erreur de syntaxe est nettement plus précise , en general, elle se pose sur le probleme
mais une erreur de Booleen ..Sic :roll:

note le .l

Code : Tout sélectionner

 id.l 
n'est pas un .| ...
Dernière modification par Backup le dim. 25/août/2013 11:20, modifié 1 fois.
Avatar de l’utilisateur
Arbrakan
Messages : 34
Inscription : lun. 24/janv./2011 10:52
Localisation : Genève
Contact :

Re: la precision concernant les erreurs , de purebasic qui t

Message par Arbrakan »

Je compatis, ça me rappel les joies de Dark Basic Pro... des erreurs pas aux bonne lignes/fichier... Pour ça que j'ai migré sur PureBasic.
Une technique est de mettre des morceaux de code en commentaires et voir dans quel coins ça coince. (Par contre j'ai pas encore trouvé comment crée des bloc de commentaire en PB ?)

Enjoy.
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: la precision concernant les erreurs , de purebasic qui t

Message par falsam »

Arbrakan a écrit :Par contre j'ai pas encore trouvé comment crée des bloc de commentaire en PB ?
Bonjour Arbrakan.

L'editeur officiel de Pure Basic ne dispose pas de caractéres permettant de faire des blocs de commentaire comme ça existe en Php par exemple.

Code : Tout sélectionner

/* Ceci est un commentaire
sur plusieurs lignes   */
Pour commenter plusieurs lignes, sélectionne les lignes que tu veux commenter puis Ctrl+B.
Pour dé-sélectionner plusieurs lignes, Tu sélectionnes les lignes concernées puis Alt+B.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: la precision concernant les erreurs , de purebasic qui t

Message par Ar-S »

Dobro a écrit :voila , dans le but de mettre a jour EPB sur la Version 5.11 et suivante

je charge mon prg de 11400 ligne dans Japbe avec Purebasic V5.11

je lance le code et voila ...

Image

content ... en dehors du fait que le message d'erreur ne me parait pas évident
je suis content de voir que l'erreur reproché n'est pas dans la ligne indiqué !
(ni meme dans la procedure s'y attachant )

je fais comment pour rechercher l'erreur dans un code de 11400 lignes
alors que je ne dispose d'aucunes informations supplémentaires sur l'erreur ?
la precision concernant le lieu de l'erreur aurai été un plus

le probleme c'est que le code n'a pas le temps de se lancer que l'erreur mal indiquée apparait ... :?
donc aucun moyen d'utiliser le debugger ....
le prg bloc sur cette ligne .... et démerde toi

une erreur de syntaxe est nettement plus précise , en general, elle se pose sur le probleme
mais une erreur de Booleen ..Sic :roll:

note le .l

Code : Tout sélectionner

 id.l 
n'est pas un .| ...
Essaye de relancer ton code en affichant ton bureau en moins grande résolution de texte... Peut être que le message est tronquée à cause ça non ?

---edit---
Commentaire CLTRL + B => ALT + B
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: la precision concernant les erreurs , de purebasic qui t

Message par falsam »

Ar-S a écrit :Essaye de relancer ton code en affichant ton bureau en moins grande résolution de texte... Peut être que le message est tronquée à cause ça non ?
Le message exacte est
Les comparaisons booléennes ne peuvent pas être utilisées avec les opérateurs de test comme If, While, Repeat. Utilisez Bool.
Bon c'est vrai que c'est pas parlant pour autant.

Un exemple de code moisi provoquant ce type de message.

Code : Tout sélectionner

Procedure Dummy(Param1.i, Param2.i)
  ;
  ProcedureReturn param1+param2
EndProcedure

Debug Dummy(1, Param2=2)
Avec PB 4.51 et 4.61 aucun message d'erreur par contre on obtient ce message d'erreur avec les version 5.11 et 5.20.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: la precision concernant les erreurs , de purebasic qui t

Message par Ar-S »

falsam a écrit :
Ar-S a écrit :Essaye de relancer ton code en affichant ton bureau en moins grande résolution de texte... Peut être que le message est tronquée à cause ça non ?
Le message exacte est
Les comparaisons booléennes ne peuvent pas être utilisées avec les opérateurs de test comme If, While, Repeat. Utilisez Bool.
Bon c'est vrai que c'est pas parlant pour autant.

Un exemple de code moisi provoquant ce type de message.

Code : Tout sélectionner

Procedure Dummy(Param1.i, Param2.i)
  ;
  ProcedureReturn param1+param2
EndProcedure

Debug Dummy(1, Param2=2)
Avec PB 4.51 et 4.61 aucun message d'erreur par contre on obtient ce message d'erreur avec les version 5.11 et 5.20.
Effectivement, ton Param2=2 crée l'erreur et le message est un peu vaseux..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Arbrakan
Messages : 34
Inscription : lun. 24/janv./2011 10:52
Localisation : Genève
Contact :

Re: la precision concernant les erreurs , de purebasic qui t

Message par Arbrakan »

Merci pour le Pro tips :)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: la precision concernant les erreurs , de purebasic qui t

Message par blendman »

ça peut aussi être une erreur liée à une macro.
Pour ce genre d'erreur (dans une macro), comme il y a du remplacement, l'erreur n'est jamais indiqué dans la macro, mais plutôt là où le compilateur l'a remplacé.
Donc, dans notre code, on ne la trouve pas à cet endroit, il faut aller voir dans la macro ^^.
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: la precision concernant les erreurs , de purebasic qui t

Message par Fred »

C'est surtout que l'erreur est sur la bonne ligne: "id.l=0" dans un appel de fonction, ca n'est pas une syntaxe valide. Faut se réveiller au lieu de s'emballer et de faire tout un palabre pour rien ;).
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: la precision concernant les erreurs , de purebasic qui t

Message par Backup »

ce code fonctionne parfaitement avec la Version 4.61
cette syntaxe , c'est toi meme qui nous a permis de le faire
ça permettais de mettre une valeur par defaut dans les parametres de fonctions !
si maintenant ça plus possible , il faut le signaler , et nous donner la bonne syntaxe ! :)

ajouter Bool() a chaque fois , n'est pas une evolution positive du langage ;)
Ar-S a écrit :Effectivement, ton Param2=2 crée l'erreur et le message est un peu vaseux..
ben oui , le signe "=" n'est pas une comparaison Booleenne ! mais une comparaison mathematique
moi je cherchais un (!,&,|,or,and,xor)
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: la precision concernant les erreurs , de purebasic qui t

Message par case »

dans le cas ou tu veux une valeur par defaut ton param=2 tu dois le mettre dans la definition de la procedure pas dans l'apel de celle ci


Procedure Dummy(Param1.i, Param2.i=2)
;
ProcedureReturn param1+param2
EndProcedure

Debug Dummy(1) ; le 2° parametre utilise la valeur par defaut.on pourrait ecrire Dummy(1,2)


dans tu fait un param = 2 c'est une comparaison qui renvoi un resultat booleen
il renvoi false si param <> 2
et true si param=2
Dernière modification par case le dim. 25/août/2013 10:32, modifié 1 fois.
ImageImage
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: la precision concernant les erreurs , de purebasic qui t

Message par Fred »

J'ai modifié un peu le message d'erreur:

"Les comparaisons (=, <, >, <>, =< et >=) sont uniquement supportees apres les mot clefs tel que If, While, Until ou dans la fonction Bool()."
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: la precision concernant les erreurs , de purebasic qui t

Message par Backup »

Merci pour toutes ces précisions :)
quoiqu'il en soit , ma remarque a le merite d'avoir informé les lecteurs du forum, qui comme moi ignoraient la chose :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: la precision concernant les erreurs

Message par Backup »

juste pour dire, que je ne viens pas ici que pour râler

je suis content :)

j'ai réussi a passer tout le Code de EPB en version 5.11
ainsi que tout les prg attenant :)

bon j'ai toujours mon probleme de Selection
mais je vais pouvoir partir sur des bases saines :D
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: la precision concernant les erreurs

Message par blendman »

@dobro : yep, merci pour ta remarque, car du coup, le message de Fred est plus clair maintenant dans le cas de ce type d'erreur.

@fred : merci pour le nouveau message, ça permettra de mieux comprendre quand on a ce type d'erreur ;)
Répondre