Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Chargement Data conditionnel... | |
| | Auteur | Message |
---|
mimic
Nombre de messages : 103 Localisation : france Date d'inscription : 02/09/2009
| Sujet: Chargement Data conditionnel... Dim 23 Fév 2020 - 15:42 | |
| Bonjour,
Voilà, j'ai plusieurs lignes de Data et je souhaite réaliser :
Si i=1 alors READ la première ligne de data, Si i=2 alors READ seconde ligne de data, … Merci pour votre aide. | |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Chargement Data conditionnel... Dim 23 Fév 2020 - 15:45 | |
| Bonjour.
Pour cela, vous avez la commande restore_label.
Un exemple concret figure dans l'aide de Panoramic. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Chargement Data conditionnel... Dim 23 Fév 2020 - 16:44 | |
| Tu peux aussi mettre au lancement tous les datas dans un DLIST, par exemple (je suppose ici que le dernier data est délimité par un DATA "F", rajouté) - Code:
-
DLIST 1000 READ a$: WHILE a$<>"F": ITEM_ADD 1000,a$: READ a$: END_WHILE Et pour l'utilisation (lecture du data indexé par la variable i): - Code:
-
a$ = ITEM_READ$(1000,i) | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Chargement Data conditionnel... Dim 23 Fév 2020 - 18:36 | |
| Salut mimic L'idée de JL35 est astucieuse; mais personnellement si c'est le cas, je ferais comme ceci - Code:
-
rem ============================================================================ label donnees dim n%,i% ,t$ n% = rnd(9)+1 : ' un nombre aléatoire entre 1 et 9 correspondant au nombre de DATA à traiter restore_label donnees for i% = 1 to n% : read t$ : next i% print : print print " La ligne DATA n° " + str$(n%) + " est :" + t$ rem ============================================================================ donnees: data "Dans la forêt lointaine" data "On entend le coucou" data "Du haut de son grand chêne" data "Il répond au hibou" data "Coucou coucou" data "Coucou hibou coucou" data "Coucou coucou" data "Coucou hibou coucou" data "FIN" rem ============================================================================
| |
| | | mimic
Nombre de messages : 103 Localisation : france Date d'inscription : 02/09/2009
| Sujet: Re: Chargement Data conditionnel... Dim 23 Fév 2020 - 20:45 | |
| Précision, je veux pouvoir lire une ligne précise de data sans charger l'ensemble des data ; je qui m'ennuie et d'avoir à déclarer un label pour chaque ligne de data … | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Chargement Data conditionnel... Dim 23 Fév 2020 - 22:55 | |
| Tu n'as évidemment pas à mettre un label à chaque ligne de data, mais un seul label en tête de tous les datas, pour se positionner au début de la liste avant la lecture de l'ensemble, avec RESTORE_LABEL. Regarde l'exemple de papydall. Il n'y a bien qu'un seul label qui permet de lire n'importe quel data en donnant son index. | |
| | | mimic
Nombre de messages : 103 Localisation : france Date d'inscription : 02/09/2009
| Sujet: Re: Chargement Data conditionnel... Lun 24 Fév 2020 - 10:32 | |
| L'exemple fourni par Papydall correspond a mon besoin, cependant n'étant très au fait du fonctionnement de Data Restore, j'ai du mal à saisir comment
for i% = 1 to n% : read t$ : next i% lit une seul ligne ?
Dans mon cas, les data ressemble à ceci : DATA 49,41,35,31,27,25,20,17,14,11,5,1,0,0 DATA 87,76,64,59,54,43,38,32,25,20,14,11,8,6,2 …
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Chargement Data conditionnel... Lun 24 Fév 2020 - 12:40 | |
| Évidemment l'exemple que tu cites lit successivement les valeurs de datas qui se suivent, de 1 à n%, et dans t$ il y aura à la fin la dernière valeur lue (à l'emplacement de rang n%). Avec ton exemple, si n% = 8 tu auras la valeur 17.
Prenons ta série de datas, 49,41,35,31, etc. Juste avant cette série, mettons une étiquette (Label). La 1ère instruction READ, n'importe où dans le programme, va lire la valeur 49, et l'emplacement est mémorisé. L'instruction READ suivante, n'importe où également, va lire la valeur suivante, c'est à dire 41. Puis la suivante va lire 35, et ainsi de suite. Le RESTORE_LABEL permet de réinitialiser la lecture à l'emplacement de l'étiquette (Label), et donc le READ suivant reprend à 49.
Une remarque: Ta série de datas sont des valeurs numériques. L'exemple de papydall s'applique à des valeurs alphanumériques. Pour l'appliquer à tes datas il faudrait écrire; FOR i% = 1 TO n%: READ t: NEXT i% | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Chargement Data conditionnel... Lun 24 Fév 2020 - 16:53 | |
| @ mimic Tu peux aussi utiliser un vecteur (un tableau à une dimension) dimensionné au nombre des data et oublier le RESTORE_LABEL. Tu remplis ton tableau avec les différentes données et, de cette façon tu peux accéder à n’importe quel élément du tableau. - Code:
-
rem ============================================================================ dim NbDonnees : NbDonnees = 100 : ' dans notre exemple dim donnees(NbDonnees) : ' tableau de 101 cases de 0 à 100 ' on peut même dimensionner le tableau à une assez grande dimension ' si on ne connait pas au juste le nombre de données à traiter ' par exemple DIM DONNEES(9999) ou autre valeur dim i : ' variable compteur ' Initialisation du tableau à faire une fois pour toutes avant tout traitement for i = 1 to NbDonnees read donnees(i) : ' le tableau donnees() contiendra toutes les données next i ' à partir d'ici on accède à n'importe quelle valeur en indiquant simplement son rang dans le tableau donnees() ' Par exemple: print donnees(17) : ' afficher la 17ème donnée soit, dans notre cas 99 qui se trouve dans la 1ère ligne DATA print donnees(80) : ' afficher la 80ème donnée soit, dans notre cas 20 qui se trouve dans la 4ème ligne DATA (dernière valeur) print donnees(100): ' afficher la dernière donnée soit 9999 rem =========================================================================== ' 5 lignes de DATA chacune de 20 valeurs, soit en tout 100 données DATA 49,41,35,31,27,25,20,17,14,11,5,1,0,0,14,13,99,18,33,75 DATA 87,76,64,59,54,43,38,32,25,20,14,11,8,6,2,16,90,123,142,33 DATA 11,12,13,14,15,16,17,18,19,20,30,40,50,60,70,80,90,99,98,97 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 DATA 100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,9999 rem ============================================================================
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Chargement Data conditionnel... Lun 24 Fév 2020 - 17:22 | |
| C'est bien ce que je lui suggérais plus haut avec le Dlist, et pour ce qu'il veut en faire c'est évidemment la solution, l'index donne immédiatement la donnée correspondante. | |
| | | Contenu sponsorisé
| Sujet: Re: Chargement Data conditionnel... | |
| |
| | | | Chargement Data conditionnel... | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |