Search this site
Embedded Files
Mon QB64 pas à pas
  • Accueil
  • QBASIC
  • QB64
  • RUBRIQUES
  • LIENS
Mon QB64 pas à pas
  • Accueil
  • QBASIC
  • QB64
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • QBASIC
    • QB64
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ QBASIC 

REDIM

DESCRIPTION.


L'instruction REDIM est utilisée pour déclarer un tableau de données, redimensionnable, en précisant le type commun à toutes les données.




SYNTAXES.


REDIM SHARED knom? ( valeur )

REDIM SHARED knom ( valeur ) AS type 


REDIM SHARED knom? ( debut TO fin )

REDIM SHARED knom ( debut TO fin ) AS type 


REDIM SHARED knom? ( valeura , valeurb , ... , valeurn )

REDIM SHARED knom ( valeura , valeurb , ... , valeurn ) AS type 


REDIM SHARED knom? ( debuta TO fina , debutb TO finb , ... , debutn TO finn )

REDIM SHARED knom ( debuta TO fina , debutb TO finb , ... , debutn TO finn ) AS type




REMARQUES.


knom peut être n'importe quelle combinaison de lettres majuscules ou minuscules et de chiffres, mais commençant par une lettre et qui ne soit pas un mot-clé de QBASIC ou de QB64.


valeur, debut et fin sont obligatoires et doivent être du type INTERER (%) ou LONG (&), mais debut et fin peuvent être négatifs.


Le nombre d'items d'un tableau de données déclaré, avec REDIM knom ( valeur ) AS type est : 

- valeur + 1 items par défaut ou avec OPTION BASE 0 ;

- valeur items avec OPTION BASE 1.


Le nombre d'items d'un tableau de données déclaré avec REDIM ( debut TO fin ) AS type est de ( fin - debut ) + 1 items. 


S'il est présent, le mot-clé SHARED, indique que le tableau sera de portée globale (partagée). les valeurs de ses items pourront être lues et/ou modifiées dans toutes les procédures et fonctions personnalisées sans avoir besoin de le passer dans les paramètres lors de l'appel.


?  peut être : % (INTEGER) ; & (LONG) ; ! (SINGLE) ; # (DOUBLE) ; $ (STRING) ; ` (_BIT) ; %% (_BYTE) ; && (_INTEGER64) ; ## (_FLOAT) ; %& (_OFFSET).


type peut valoir : INTEGER ; LONG ; SINGLE ; DOUBLE ; STRING ; _BIT ; _BYTE ; _INTEGER64 ; _FLOAT ; _OFFSET ; _MEM (le type _MEM n'a pas de suffixe de type).


Si le mot clé AS est utilisé pour définir le type de la variable, aucun suffixe, symbole de type, ne doit être ajouté au nom de la variable.


Les variables de type STRING ($) et _BIT (`) peuvent être déclarées avec l'une longueur, en indiquant le nombre de caractères qui doivent la composer précédé du symbole *. Par exemple : REDIM kdesignation AS STRING * 9, la variable kdesignation comportera toujours 9 caractères.


Si le type des données du tableau n'est pas indiqué, elles seront toutes du type SINGLE (!).


Lors de la déclaration d'un tableau, tous ses items reçoivent la valeur : 

- 0 s'il est défini avec un des types numériques ;

- "" (chaine vide) s'il est défini avec le type STRING seul ,

- un STRING remplis de quantite espaces comme indiqué avec STRING * quantite.  


Pour déclarer des tableaux à plusieurs dimensions, et selon les besoins, on utilisera l'une des syntaxes :

REDIM knom? ( valeura , valeurb , ... , valeurn )

REDIM knom ( valeura , valeurb , ... , valeurn ) AS type 


REDIM knom? ( debuta TO fina , debutb TO finb , ... , debutn TO finn )

REDIM knom ( debuta TO fina , debutb TO finb , ... , debutn TO finn ) AS type


Dans QBASIC et dans QB84, il n'est pas indispensable de déclarer un tableau ayant moins de 12 items avant son utilisation, mais il sera alors non redimensionnable, sauf si la métacommande $DYNAMIC est placée en début de script.


Tous les tableaux de données de types numériques, à l'exception de SINGLE, DOUBLE et _FLOAT, peuvent être dimensionnés comme _UNSIGNED (~) c'est-à-dire uniquement positifs.


Lors d'un redimensionnement d'un tableau de données, toutes les valeurs des items sont réinitialisées à leur valeur par défaut : 0 pour les valeurs numériques ou une chaine vide pour les STRING. Cela est particulièrement utile pour réinitialiser toutes les valeurs des données du tableau. Cependant, le QB64 a ajouté l'instruction _PRESERVE permettant de conserver les valeurs des items lors du redimensionnement d'un tableau.

REDIM LST_Durees(15) AS INTEGER

REDIM _PRESERVE LST_Durees(30) AS INTEGER


Note : lors de l'utilisation de l'instruction REDIM, il faut s'assurer que le suffixe, correspond au bien au type de données du tableau de données qui doit être redimensionné. Deux tableaux de données ayant le même nom mais des suffixes différents sont en réalité deux tableaux de données distincts


Si un tableau de données ne doit pas être redimensionné, on utilisera l'instruction DIM pour le déclarer. 


Les tableaux de données déclarés après la métacommande $DYNAMIC ou avec l'instruction REDIM devront être déclarés de nouveau avec leur bonne dimension après l’exécution d'une instruction CLEAR ou ERASE.




RUBRIQUE.


Les tableaux de données pour plus de détails sur la création et l'utilisation des tableaux de données.




EXEMPLES.


REDIM LST_Scores(25) AS INTEGER

REDIM LST_Scores%(25)


REDIM LST_Pseudo(20) AS STRING

REDIM LST_Coordonnees(20) AS STRING * 7


REDIM SHARED LST_Partages(15) AS SINGLE


REDIM LST_Distances(10 TO 30) AS DOUBLE


REDIM LST_Coordonnees(17, 8) AS LONG

REDIM LST_3d(23, 14, 37) AS STRING


REDIM LST_Lances(8 TO 27, 14 TO 32, 172 TO 204, 31 TO 50 ) AS DOUBLE


Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions. 

Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse