Page 1 sur 1

Data et tableau

Publié : mer. 17/août/2005 8:06
par Patix
Bon, retour de vacances.

Après lecture de la réponse. J'ai modifié mon prog mais ne comprend pas ou est l'erreur dans mon prog.

Toutes les datas ne sont pas pris en compte dans l'ordre.
Je dois louper qqchose :-(.

Voici le prog

Code : Tout sélectionner

Global vtexte.s, vchiffre.w

;************
Enumeration
#ID_BPARAM:#ID_BPARAM2
#ID_IMAGE_PARAM:#ID_IMAGE_PARAM2
EndEnumeration

Structure structessai
    vid_param.l
    vY.l 
    vH.l
    vlarg.l 
    vhaut.l
    vid_imag.l 
    vlarg_coul.l
    vtexte1.s 
    vtexte2.s
    vtexte3.s  
EndStructure


NbColonnes=8
NbLignes=2
Dim TableauMultiple.structessai(NbColonnes,NbLignes)


If OpenWindow(0, 100, 200, 300, 260, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "PureBasic Window")


Restore WNT_P_L 
     For lig= 0 To NbLignes-1 
             For col=0 To NbColonnes-2
              MessageRequester("Ligne, colonne =",Str(lig)+", "+ Str(col),#PB_MessageRequester_Ok)
              Read vChiffre
                Select col
                      Case 0
                        TableauMultiple(0, lig)\vid_param=vChiffre   
;                        MessageRequester("vid_param - c =",Str(vchiffre),#PB_MessageRequester_Ok)
                        MessageRequester("vid_param =",Str(TableauMultiple(0, lig)\vid_param),#PB_MessageRequester_Ok)
                     
                      Case 1
                        TableauMultiple(1, lig)\vY=vChiffre                         
;                        MessageRequester("vY - c =",Str(vchiffre),#PB_MessageRequester_Ok)
                        MessageRequester("vY =",Str(TableauMultiple(1, lig)\vY),#PB_MessageRequester_Ok)
                      Case 2
                        TableauMultiple(2, lig)\vH=vChiffre                         
;                        MessageRequester("vH - c =",Str(vchiffre),#PB_MessageRequester_Ok)
                        MessageRequester("vH =",Str(TableauMultiple(2, lig)\vH),#PB_MessageRequester_Ok)
                      Case 3
                        TableauMultiple(3, lig)\vlarg=vChiffre                         
                        MessageRequester("vlarg =",Str(TableauMultiple(3, lig)\vlarg),#PB_MessageRequester_Ok)
                      Case 4
                        TableauMultiple(4, lig)\vhaut=vChiffre                         
                        MessageRequester("vhaut =",Str(TableauMultiple(2, lig)\vhaut),#PB_MessageRequester_Ok)
                      Case 5
                        TableauMultiple(5, lig)\vid_imag=vChiffre                         
                        MessageRequester("vid_imag =",Str(TableauMultiple(2, lig)\vid_imag),#PB_MessageRequester_Ok)
                      Case 6
                        TableauMultiple(6, lig)\vlarg_coul=vChiffre                         
                        MessageRequester("vlarg_coul =",Str(TableauMultiple(2, lig)\vlarg_coul),#PB_MessageRequester_Ok)
                      Default
                        ;Debug vchiffre
                EndSelect
;                MessageRequester("JE PASSE",Str(Col),#PB_MessageRequester_Ok)
;                MessageRequester("CELLULE",Str(TableauMultiple(col,lig)),#PB_MessageRequester_Ok)
             Next
     Next           
 
  Repeat
    EventID.l = WaitWindowEvent()

    If EventID = #PB_Event_CloseWindow  ; If the user has pressed on the close button
      Quit = 1
    EndIf

  Until Quit = 1
  
EndIf

End  
  
DataSection 
WNT_P_S: 
Data.s "PARAM", "PARAM1_P", "lien"
Data.s "PARAM2", "PARAM2_P", "lien"
WNT_P_L: 
Data.l #ID_BPARAM, 1, 1, 100, 30, #ID_IMAGE_PARAM, 100
Data.l #ID_BPARAM2, 62, 31, 43, 30, #ID_IMAGE_PARAM2, 43
EndDataSection
 

Publié : mer. 17/août/2005 9:08
par lionel_om
INFO : Utilise des Debug plutot que des MessageRequester, car c'est relou d'avoir à cliquer 50 fois sur "ok".

1) Je ne comprend pas ce que tu veux faire
2) C'était inutil d'ouvrir un nouveau POST, t'aurai du continuer dans l'autre...

Publié : mer. 17/août/2005 11:22
par Patix
Désolé pour le nouveau POST, c'est une erreur de manip.
------

En fait je veux entrer des datas (textes et numériques) dans un tableau avec structure afin de les exploiter pour des affichages automatiques (dans un scrollgadget (à terme)).

L'entrée des données devrait se faire dans l'ordre de lecture mais à priori ce n'est pas le cas dans le prog ci-dessus. Il ne prends pas les données dans l'ordre et en oubli.

Et je ne comprends pas pourquoi :-(


Pour Debug j'essaierai de mieux l'utiliser :-)

Publié : mer. 17/août/2005 12:50
par lionel_om
Tu fais : vChiffre, alors que cette variable est de type Word
Or tes données sont définies en Long :wink:

Publié : mer. 17/août/2005 12:50
par fweil
Patix,

Un gros pb dans ton code : tu déclares vchiffre.w et tu as des data en .l

Celà explique le fait que les valeurs successives de vchiffre dans la double boucle soient celles de la zone data alternées avec des valeurs à 0.

Slts

Publié : mer. 17/août/2005 12:56
par lionel_om
Grillé ! :P :mad:

Publié : mer. 17/août/2005 17:26
par fweil
@lionel_om

De 1 minute ?

Avec mon micro-ondes c'est carrément pulvérisé non ?

Bon au four classique, même pas de quoi finir le préchauffage !

Mais j'ai quand même passé un moment à ne pas voir le bug, question de forme sans doute.

Publié : mer. 17/août/2005 18:41
par lionel_om
Je l'ai vu en 1min chrono :D 8) :P