PureBasic

Forums PureBasic
Nous sommes le Mer 22/Mai/2013 16:29

Heures au format UTC + 1 heure




Poster un nouveau sujet Ce sujet est verrouillé, vous ne pouvez pas éditer de messages ou poster d’autres réponses.  [ 21 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: Data [Resolu]
MessagePosté: Sam 02/Juil/2011 10:28 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12951
c'est quand meme dommage de ne pas pouvoir faire

chemin$="c:\"

toto.i=100

datasection
liste:
Data.s chemin$
Data.i toto
enddatasection

:roll:


c'est quand meme dommage de ne pas pouvoir faire :

chemin_image$="c:\toto\image\belle_image.jpg"

DataSection
image_fond: IncludeBinary chemin_image$
enddatasection

:roll:

_________________
Image


Dernière édition par Dobro le Sam 02/Juil/2011 20:53, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: Data
MessagePosté: Sam 02/Juil/2011 14:35 
Hors ligne

Inscription: Mer 13/Oct/2010 15:43
Messages: 136
Oui ! c'est quand même dommage de ne pas pouvoir faire :

Code:
Enumeration
#Var1
#Var2
#Var3
#Var4
#Var5
EndEnumeration

;Plus loin...

for i=1 to 5
   SetGadgetText(#Var + str(i), "au secours Fred ")
next


Haut
 Profil  
 
 Sujet du message: Re: Data
MessagePosté: Sam 02/Juil/2011 14:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12951
anissa a écrit:
Oui ! c'est quand même dommage de ne pas pouvoir faire :

Code:
Enumeration
#Var1
#Var2
#Var3
#Var4
#Var5
EndEnumeration

;Plus loin...

for i=1 to 5
   SetGadgetText(#Var + str(i), "au secours Fred ")
next



si c'est pour raconter des conneries , tu vas polluer un autre post Merci !!

les Constantes ne sont pas faite pour etre incrementés
ce ne sont pas des variables !!


il faut faire :
Code:
Enumeration
      #var
EndEnumeration

;Plus loin...

For i=1 To 5
   ;   SetGadgetText(#var +i, "au secours Fred ") ; <===comme ça
      Debug "var"+Str(#var +i )+"  au secours Fred " ; ça donne ça
Next



la prochaine fois tu te creer un topic ...

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Data
MessagePosté: Sam 02/Juil/2011 15:34 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 18/Sep/2010 18:13
Messages: 20
Code:
#chemin$ = "c:\"
#toto = 100

DataSection
  liste:
  Data.s #chemin$
  Data.i #toto
EndDataSection



#chemin_image$ = "c:\toto\image\belle_image.jpg"

DataSection
  image_fond: IncludeBinary #chemin_image$
EndDataSection


Haut
 Profil  
 
 Sujet du message: Re: Data
MessagePosté: Sam 02/Juil/2011 19:56 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4311
Localisation: Clermont ferrand OU Olsztyn
Pour Anissa :

Code:
Enumeration
   #Var
   #Var1
   #Var2
   #Var3
   #Var4
   #Var5
EndEnumeration
   
   ;Plus loin...
   
for i=1 to 5
   SetGadgetText(#Var + str(i), "au secours Fred ")
next 

_________________
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)]


Haut
 Profil  
 
 Sujet du message: Re: Data [resolu]
MessagePosté: Sam 02/Juil/2011 20:00 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12951
@Demivec :

Merci ! j'etais passé a coté du truc 8O

du reste je trouve quand meme dommage q'uon ne puisse le faire avec des variables :mrgreen:

Merci :)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Sam 02/Juil/2011 22:57 
En ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Citation:
du reste je trouve quand meme dommage q'uon ne puisse le faire avec des variables


Les datasections sont écrit a la compilation en dur dans l’exécutable dans une section spéciale data, comment veut tu utiliser des variables ? c'est techniquement impossible. c'est comme demander comment changer la valeur d'une constante existante, ca n'a aucun sens ;)


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Sam 02/Juil/2011 23:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12951
G-Rom a écrit:
Citation:
du reste je trouve quand meme dommage q'uon ne puisse le faire avec des variables


Les datasections sont écrit a la compilation en dur dans l’exécutable dans une section spéciale data, comment veut tu utiliser des variables ? c'est techniquement impossible. c'est comme demander comment changer la valeur d'une constante existante, ca n'a aucun sens ;)



si ç'est possible !
il suffirai que Purebasic compile en 2 Pass ! ;)
et encore ,
lorsque tu fais

toto.s="nunuche"
Debug toto.s
ça t'affiche bien "nunuche"

pourquoi Debug pourrai faire un truc , et pas Data ?

toto.s="nunuche"

datasection
data.s toto.s ; <----- serai remplacé par "nunuche"
enddatasection

de plus on peut faire :

Code:
#chemin$ = "c:\"
#toto = 100

DataSection
  liste:
  Data.s #chemin$
  Data.i #toto
EndDataSection





ce serai juste ce petit caractere "#" qui permettrai de le faire ... ?? Hum ...
drole de limitation .. :roll:

et pour ton info , l'utilisation des Variables dans les Data , ne date pas d'hier :)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Dim 03/Juil/2011 9:03 
En ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Bof, je trouve que cela n'a pas de sens.
une fois ton programme compilé , à quoi va servir cette ligne :
Citation:
toto.s="nunuche"

datasection
data.s toto.s ; <----- serai remplacé par "nunuche"
enddatasection


vu que ton data est déjà écrit , toto.s="nunuche" ne sert plus à rien mis à part prendre de la ram inutilement.
là ca va , car c'est un string assez petit , mais dans le cas de data plus grosse , comme les images par exemple ?
enfin bon , on ne va pas épilogué , c'est pas possible. :mrgreen:


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Dim 03/Juil/2011 20:38 
Hors ligne

Inscription: Mer 13/Oct/2010 15:43
Messages: 136
@Le soldat inconnu
Code:
Enumeration
   #Var
   #Var1
   #Var2
   #Var3
   #Var4
   #Var5
EndEnumeration
   
   ;Plus loin...
   
for i=1 to 5
   SetGadgetText(#Var + str(i), "au secours Fred ")
next 


Donc, j'avais raison n'est ce pas? Pour Dobro et G-Rom, je crois qu'il y a un malentendu, ce n'est pas la constance que je veux changer (ça n'a pa de sens comme tu dis), mais je veux juste éviter d'écrire plusieurs fois une instruction que je préfère écrire une seule fois exemple:

Ce que je veux éviter:
Code:
SetGadgetText(#Var1,"Valeur de la constante 1")
SetGadgetText(#Var2,"Valeur de la constante 2")
SetGadgetText(#Var3,"Valeur de la constante 3")
SetGadgetText(#Var4,"Valeur de la constante 4")
SetGadgetText(#Var5,"Valeur de la constante 5")


Ce que je souhaite faire:

Code:
for i=1 to 5
    SetGadgetText(#Var+str(i),"Valeur de la constante " + str(i))
next i


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Dim 03/Juil/2011 20:39 
Hors ligne

Inscription: Mer 13/Oct/2010 15:43
Messages: 136
De toute façon je l'ai fait et ça a marché ! (avec une petite modification)


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Dim 03/Juil/2011 20:43 
En ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Code:
for i=1 to 5
    SetGadgetText(#Var+str(i),"Valeur de la constante " + str(i))
next i


cet impossible à faire, les constantes sont remplacé par les valeur, cela ce passe à la précompilation , donc #var n'existe pas , et à la précompilation str(i) ne vaut rien.
donc impossible.


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Dim 03/Juil/2011 21:04 
Hors ligne

Inscription: Mer 13/Oct/2010 15:43
Messages: 136
Ce qui est impossible c'est ça:
Code:
for i=1 to 5
    SetGadgetText(#Var+str(i),"Valeur de la constante " + str(i))
next i


Et d'ailleurs je l'ai dit au début pour la simple raison que #Var est une constante et str(i) est une chaîne, or on ne peut pas ajouter une chaine à une constante..

Ce qui est possible et ça marche c'est bien ça:
Code:
Enumeration
#ValGad1
#valGad2
#valGad3
#ValGad4
#valGad5
EndEnumeration

Global Dim WValGad(5)
WValGad(1)=#ValGad1
WValGad(2)=#ValGad2
WValGad(3)=#ValGad3
WValGad(4)=#ValGad4
WValGad(5)=#ValGad5

;Plus loin

For i=1 To 5
   SetGadgetText(wValGad(i),"Valeur" + str(i))
Next i


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Lun 04/Juil/2011 12:00 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
Te te compliques la vie Anissa
Tu donnes à tes gadgets un numéro avec l'énumération, c'est le principe même de l'énumération.

Code:
Enumeration
  #Window_0
EndEnumeration

Enumeration 0 ; L'enum des gadgets va donc commencer à 0
  #ValGad0
  #valGad1
  #valGad2
  #ValGad3
EndEnumeration


donc il faut simplement indiquer dans ta boucle For / Next que i est égale au numéro de ton 1er gadget jusqu'au dernier...

Code:
For i = #ValGad0 To #ValGad3
     
      SetGadgetText(i,"Je suis le Gadget "+"#ValGad"+Str(i))
     
Next



Ce qui donne au final

Code:
Enumeration
  #Window_0
EndEnumeration
Enumeration 0
  #ValGad0
  #ValGad1
  #valGad2
  #valGad3
EndEnumeration

If OpenWindow(#Window_0, 450, 200, 355, 186, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
 
  StringGadget(#ValGad0, 45, 45, 280, 20, "")
  StringGadget(#ValGad1, 45, 70, 280, 20, "")
  StringGadget(#valGad2, 45, 95, 280, 20, "")
  StringGadget(#valGad3, 45, 120, 280, 20, "")
 
 
 
  For i = #ValGad0 To #valGad3
   
    SetGadgetText(i,"Je suis le Gadget "+"#ValGad"+Str(i))
   
  Next
 
  MessageRequester("Voilà","finito")
  End
 
EndIf

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Data [Resolu]
MessagePosté: Lun 04/Juil/2011 21:03 
Hors ligne

Inscription: Mer 13/Oct/2010 15:43
Messages: 136
Oui, c'est pareil Ar-s, les 2 codes fonctionnent..

ok


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Ce sujet est verrouillé, vous ne pouvez pas éditer de messages ou poster d’autres réponses.  [ 21 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye