Page 1 sur 1

ForeachData next et ForDataBlock next

Publié : mer. 10/nov./2004 14:56
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

Publié : mer. 10/nov./2004 15:14
par Chris
Ca ce serait bien, oui!

Parce que les datas, actuellement, c'est un peu leger au niveau des commandes.

Publié : mer. 10/nov./2004 18:16
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.

Publié : mer. 10/nov./2004 18:34
par Chris
D'ailleurs, le système avec le DataBlock pourrait même être utile sans LinkedList().

Fred, on veut ça!! :lol:

Publié : mer. 10/nov./2004 18:41
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.

Publié : mer. 10/nov./2004 20:45
par Le Soldat Inconnu
oui, ce serait bien :D

Publié : mar. 17/mai/2005 18:06
par Anonyme2
Fred, tu as déjà lu ce post ?

Publié : mar. 17/mai/2005 18:10
par Progi1984
Ouais ?

Publié : mar. 17/mai/2005 19:06
par Fred
Je viens de le lire, pourquoi pas..