[V4.10 + V4.20B2] redim tab(1,2)

Archive.
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

[V4.10 + V4.20B2] redim tab(1,2)

Message par Stefou »

J'ai bien l'impression qu'il y a un bug là !

Code : Tout sélectionner

Procedure ess_redim_tab()
  
  Dim nom_page.s(1,1)
  For i=1 To 5
    Redim nom_page.s(1,i)
    Debug i
  Next
  
EndProcedure

ess_redim_tab()
RV
Messages : 209
Inscription : sam. 18/nov./2006 15:16

Message par RV »

Les tableaux sont toujours locaux par défaut, donc pour accéder à partir d'une procedure à un tableau défini dans le code source principal du programme, l'utilisation de Global ou Shared est requise.
donc avec Global

Code : Tout sélectionner

Procedure ess_redim_tab() 
  
  Global Dim nom_page.s(1,1) 
  For i=1 To 5 
    ReDim nom_page.s(1,i) 
    Debug i 
  Next 
  
EndProcedure 

ess_redim_tab()
ou alors

Code : Tout sélectionner

Global Dim nom_page.s(1,1) 

Procedure ess_redim_tab() 
  
  For i=1 To 5 
    ReDim nom_page.s(1,i) 
    Debug i 
  Next 
  
EndProcedure 

ess_redim_tab()
:wink:
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

@RV, Je ne veux pas te contrarier, mais je suis d'accord avec Stefou

En effet, si tu déclares un tableau dans ton code hors d'une procédure, tu ne pourras pas l'utiliser dans une procédure à moins de l'avoir déclarer en global.

Mais dans ce cas si le tableau est bien en local, mais dans une procédure et ne sera donc pas accéssible par le reste du code (hors procédure).

Je n'ai pas tester avec la Beta 2 mais, s'il y a une erreur, c'est bien un bug, puisque le redim est fait correctement sur la dernière dimension.

EDIT:

J'ai bien un blocage au troisième redimensionnement???
Répondre