Problème Dim

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Problème Dim

Message par dayvid »

Salut

Ya un soucis avec Dim ici dans ce code, ce fichue debuger pète une durite :?

Code : Tout sélectionner

NombreDimentionTableau = 2 ; Sert juste à savoir le nombre de dimention qu'a le tableau

Macro IniMonTableauA(NombreDimentionTableau, NombreColone, NombreLign, NombreProfondeur)
  
  If DimMonTableau(NombreDimentionTableau, NombreColone, NombreLign, NombreProfondeur) = 1
    Dim MonTableau.a(NombreColone) ; Juste des colonnes
    
  ElseIf DimMonTableau(NombreDimentionTableau, NombreColone, NombreLign, NombreProfondeur) = 2
    Dim MonTableau.a(NombreColone, NombreLigne) ; Des colonnes et des lignes
    
  ElseIf DimMonTableau(NombreDimentionTableau, NombreColone, NombreLign, NombreProfondeur) = 3
    Dim MonTableau.a(NombreColone, NombreLigne, NombreProfondeur) ; Des colonnes, des lignes et une profondeur
    
  EndIf
  
EndMacro

Procedure.l DimMonTableau(NombreDimentionTableau, NombreColone, NombreLign, NombreProfondeur)
  Select NombreDimentionTableau
      
    Case 1
      
      If NombreColone = 0
        NombreColone = 1
      EndIf
      
      DimMonTableau = 1
      
    Case 2
      
      If NombreColone = 0
        NombreColone = 1
      EndIf
      
      If NombreLigne = 0
        NombreLigne = 1
      EndIf
      
      DimMonTableau = 2
      
    Case 3
      
      If NombreColone = 0
        NombreColone = 1
      EndIf
      
      If NombreLigne = 0
        NombreLigne = 1
      EndIf
      
      If NombreProfondeur = 0
        NombreProfondeur = 1
      EndIf
      
      DimMonTableau = 3
      
    Default
      
      If NombreColone = 0
        NombreColone = 1
      EndIf
      
      DimMonTableau = 1
      
  EndSelect
  
  ProcedureReturn DimMonTableau
EndProcedure

Procedure Tableau(Type$ = ".l", NombreDimentionTableau = 1, NombreColone = 1, NombreLigne = 0, NombreProfondeur = 0)
  
  Select Type$
      
    Case ".a"
      IniMonTableauA(NombreDimentionTableau, NombreColone, NombreLign, NombreProfondeur)
      
    Case ".b"
      
    Case ".c"
      
    Case ".d"
      
    Case ".f"
      
    Case ".i"
      
    Case ".l"
      
    Case ".q"
      
    Case ".s"
      
    Default
      Type$ = ".l"
      
  EndSelect
  
EndProcedure
Pourquoi il m'ennuie avec ça puisque le tableau je l'initialise qu'une seulle fois :?
Ya t-il moyen de contourner ce problème, une idée, une tapette, une baffe, une tarte, fin n'importe quoi :lol:

Note: Ceci n'est qu'un essaie, j'ai coder ça juste pour passer le temps et essayer un truc !
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Problème Dim

Message par Mesa »

C'est le même coup qu'avec la map du post de Blendman http://www.purebasic.fr/french/viewtopi ... =1&t=12689

Je pense que c'est l’éditeur de PB qui croit que l'on veut déclarer le tableau plusieurs fois.
Faudrait demander à Fred.

Mesa.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Problème Dim

Message par dayvid »

C'est vraiment très problèmatique quand même :(
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Problème Dim

Message par Le Soldat Inconnu »

avec jaPBe, aucune erreur, c'est quoi le soucis ?
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)]
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Problème Dim

Message par dayvid »

Le debuger pète une durite car il crois que l'on crée plusieur fois le même tableau :?
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Problème Dim

Message par Backup »

avec EPB j'ai une erreur de syntaxe ligne 4

sur la ligne 75

Code : Tout sélectionner

 Case ".a"
      IniMonTableauA(NombreDimentionTableau, NombreColone, NombreLign, NombreProfondeur)
message de l'erreur
"5- Erreur de syntaxe at line 4 of the expanded Macro (Macro.out)"
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Problème Dim

Message par nico »

Ben, c'est normal, on ne peut pas créer dynamiquement des tableaux, des constantes, des variables etc...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Problème Dim

Message par Backup »

bon :) EPB marche mieux que Japbe si j'en crois Le Soldat inconnu :lol:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Problème Dim

Message par Le Soldat Inconnu »

non, j'ai l'erreur aussi effectivement, z'avais pas tout compris.

Comme dis nico,ça ne peut pas fonctionné, ton affaire
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)]
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Problème Dim

Message par Fig »

Il faut changer ton paradigme de programmation, David.
On ne programme pas de cette manière avec PB.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Problème Dim

Message par dayvid »

Oui mais pourquoi on pourais pas crée des tableaux au autre dinamiquement, c'est dommage ça :(
Comment puis-je faire autrement svp ?!
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Problème Dim

Message par Fig »

Je ne sais pas ce que tu veux faire au final (ce n'est pas trivial quand on regarde ton code !!), mais en admettant que tu veuille vraiment faire ce que tu fais, je procéderai ainsi:

au début du programme, tu créé un tableau avec le maximum de dimension que tu souhaites:

dim montableau.a(1,1,1)

ensuite,
tu le redimensionne en fonction de tes besoins avec

redim montableau(colonne,ligne,profondeur)


M'enfin, déja si on savait ce que tu veux faire, ça serait plus simple ;)
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Problème Dim

Message par graph100 »

Fig a écrit :Je ne sais pas ce que tu veux faire au final (ce n'est pas trivial quand on regarde ton code !!), mais en admettant que tu veuille vraiment faire ce que tu fais
:mrgreen: :mrgreen: :mrgreen: :lol:

je suis mort de rire...
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Problème Dim

Message par GallyHC »

Bonjour,

J'avous ne pas tout avoir compris mais juste avec un :

Code : Tout sélectionner

Dim Machin.l(0)
ReDim Machin(100)
Ce ne serait pas plus simple? ton redim donne la taille en fonction des besoins ?

Cordialement,
GallyHC

J'utilise pas mal le Redim et cela fonctionne plutot bien, quand on ne fait pas d'erreur dans le code (ce qui m'est deja arrive) lol.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Problème Dim

Message par dayvid »

Un:

Dim MonTableau.Type$()

Serais bien je trouve, Type$ pourais être un ".l" par exemple ou ".a", etc. !
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre