ForeachData next et ForDataBlock next

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

ForeachData next et ForDataBlock next

Message par Anonyme2 »

Toujours sur la lecture des datas dont les commandes ne sont pas assez souples :

J'aimerais pouvoir avoir ce type de commande lorsque les datas sont de même type (long, string ou autre, voire structurels) ce qui permet de lire les datas sans connaître exactement leur nombre (pratique lorsqu'il y a beaucoup de datas)

Code : Tout sélectionner

Newlist Chaine.s()

ForeachData(Label1)
  Addelement(Chaine())
  Read Chaine()
next

DataSection
Label1:
  Data.s "NM"   
  Data.s "COB"
  Data.s "NMC"
  Data.s "NT1"   
  Data.s "AAY"
  Data.s "AZT"
EndDataSection
Dans le même ordre d'idée, mais cette fois pour lire seulement un bloc de Datas

Code : Tout sélectionner

Newlist Chaine.s()

ForDataBlock(Label1)
  Addelement(Chaine())
  Read Chaine()
next

DataSection
  DataBlock Label1:
     Data.s "NM"   
     Data.s "COB"
     Data.s "NMC"
     Data.s "NT1"   
     Data.s "AAY"
     Data.s "AZT"
  EndDataBlock

   Data.l  80
   Data.w  100
   Data.s  "STZ"
   Data.l  8897
   Data.l  125470

EndDataSection
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ca ce serait bien, oui!

Parce que les datas, actuellement, c'est un peu leger au niveau des commandes.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Actuellement sur le truc que je travaille, j'utilise ce code avec un peu d'asm pour y arriver (lecture des datas situées entre 2 labels et je rempli la listview avec les chaines

Code : Tout sélectionner

        Global FinListeStructures.l

         Restore _Liste_Structures

         ListViewGadget(#ListView, 10, 20, 375, 260, #LBS_SORT ) 
         HideGadget(#ListView, 1)
         FinListeStructures = ?_Fin_Liste_Structures
         ! Boucle :
         Read Struc.s
         SendMessage_(GadgetID(#ListView), #LB_ADDSTRING, -1, Struc)
         ! MOV eax, dword [PB_DataPointer]     ; charge dans eax le pointeur des Data
         ! CMP eax, dword [v_FinListeStructures]  ; je compare à l'adresse de mon label _Fin_Liste_Structures
         ! JNE Boucle  ; je reboucle si c'est pas égal

et les datas

Code : Tout sélectionner

DataSection
   _Liste_Structures :

 LVBKIMAGE_:
      Data.s "LVBKIMAGE"
LVCOLUMN_:
      Data.s "LVCOLUMN"
LVFINDINFO_:
      Data.s "LVFINDINFO"
LVGROUP_:
      Data.s "LVGROUP"
LVGROUPMETRICS_:
      Data.s "LVGROUPMETRICS"

   _Fin_Liste_Structures :

EndDataSection

En fait les data sont plus importantes mais je ne lis que ce que j'ai entre les 2 labels.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

D'ailleurs, le système avec le DataBlock pourrait même être utile sans LinkedList().

Fred, on veut ça!! :lol:
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Chris a écrit :D'ailleurs, le système avec le DataBlock pourrait même être utile sans LinkedList().

Fred, on veut ça!! :lol:
Oui avec la linkedlist c'est juste un exemple :D
le 2eme code que j'ai mis n'utilise pas de linkedlist, mais une listview.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

oui, ce serait bien :D
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Fred, tu as déjà lu ce post ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Ouais ?
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Je viens de le lire, pourquoi pas..
Répondre