Forum Liberty Basic France

Le 15/05/2021 à 17h32

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 120
Petit bug que je viens de découvrir.
Je poste ici, si sa peut aider quelqu'un :

----------------------------------------------------------------

Selon l'ordre de nos subs, l'exécution de notre programme peut provoquer le bug suivant :

"BASIC Compile Halted: array monTableau2D() is one dimensional"


Dans ce 1er exemple, tout fonctionne correctement :
Code VB :
nomainwin
    call maSub
end
 
sub maSub
    dim monTableau2D(100,100)
    for i = 1 to 100
        monTableau2D(i,i)=i
    next i
    call monTest
end sub
 
sub monTest
    notice monTableau2D(50,50)
end sub



Dans ce deuxième code, l'ordre des subs "monTest" et "maSub" sont inversés et provoque une erreur de compilation :
Code VB :
nomainwin
    call maSub
end
 
sub monTest
    notice monTableau2D(50,50)
end sub
 
sub maSub
    dim monTableau2D(100,100)
    for i = 1 to 100
        monTableau2D(i,i)=i
    next i
    call monTest
end sub




Edité par joan74 Le 16/05/2021 à 09h44
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 15/01/2022 à 23h25

Libertynaute Débutant

Groupe: Membre

Inscrit le: 15/01/2022
Messages: 1
'Une solution consiste à déclarer global

nomainwin
dim monTableau2D(100,100)
call maSub
end

sub monTest
notice monTableau2D(50,50)
end sub

sub maSub
for i = 1 to 100
monTableau2D(i,i)=i
next i
call monTest
end sub

   

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie