Pedro
Nombre de messages : 1555 Date d'inscription : 19/01/2014
| Sujet: Problème de lancement de programme. Ven 31 Mar 2017 - 16:55 | |
| Bonjour. Mon programme principal, qui comporte maintenant 46.235 lignes, fonctionnait parfaitement jusqu'à présent. Or, à l'exécution, j'obtiens aujourd'hui le message d'erreur suivant: (13) More WHILE than ENd_WHILE ! C'est incompréhensible. J'ai donc vérifié avec le code suivant, et la valeur retournée pour b% est identique à celle de c%. - Code:
-
dim a$, k%, b%, c%
file_open_read 1,"langues.bas"
for k%=1 to 46235 file_readln 1,a$ a$=trim$(a$) if left$(a$,6)="while " then b%=b%+1 if left$(a$,9)="end_while" then c%=c%+1 next k%
file_close 1 message str$(b%)+" : "+str$(c%) | |
|
Klaus
Nombre de messages : 12295 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème de lancement de programme. Ven 31 Mar 2017 - 17:18 | |
| Teste plutôt comme ceci: - Code:
-
dim a$, k%, b%, c%
file_open_read 1,"langues.bas"
for k%=1 to 46235 file_readln 1,a$ a$=lower$(trim$(a$)) : ' <========= tenir compte d'éventuelles majuscules ! if left$(a$,6)="while " then b%=b%+1 if left$(a$,9)="end_while" then c%=c%+1 next k%
file_close 1 message str$(b%)+" : "+str$(c%) Et encore - ça ne prend pas en compte des WHILE ou END_WHILE qui seraient dans une ligne de continuation (après un signe ":"). Une meilleure méthode, brutale mais efficace, serait de tester par morceaux. Travaille sur une copie de ton code, par sécurité. Puis, coupe une partie (à partir de la fin, de préférence) et relance-le. Certes, ce ne sera pas opérationnel. Mais le test sur la cohérence des WHILE/END_WHILE se fait avant le vrai lancement du programme. Et dès que tu n'as plus ce message d'erreur, tu sais que l'anomalie est dans la partie éliminée. Bonne chance ! | |
|
Pedro
Nombre de messages : 1555 Date d'inscription : 19/01/2014
| Sujet: Problème de lancement de programme. Ven 31 Mar 2017 - 20:20 | |
| Bonsoir.
Merci Klaus, j'ai donc procédé ainsi, afin de pouvoir détecter l'erreur. Et je l'ai trouvée !
Panoramic ne détecte pas les blancs éventuels situés juste après un 'end_while'.
Exemple:
end_while...
Les '.' correspondant à des blancs, difficiles à détecter. | |
|
Klaus
Nombre de messages : 12295 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème de lancement de programme. Ven 31 Mar 2017 - 22:31 | |
| De rien, Pedro ! Des incohérences sur des While, Select, If, Sub etc, j'en ai souvent, et j'utilise la méthode indiquée pour les dépister. Toute expérience est bonne à partager. | |
|
Contenu sponsorisé
| Sujet: Re: Problème de lancement de programme. | |
| |
|