qui peux m'aider pour un debut de code
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
avant de penser à faire l'interface de sauvegarde et de chargement, tu devrais faire la gestion de la liste des site avec login et password.
pour le moment, on ne peux pas encore rentré de valeur dans ton programme.
une fois que tu sais comment tu va gérer ceci, on s'occuperera de la sauvegarde.
donc comment tu souhaites affiché les valeurs ? une par une, toute en même temps dans un tableau, etc...
pour le moment, on ne peux pas encore rentré de valeur dans ton programme.
une fois que tu sais comment tu va gérer ceci, on s'occuperera de la sauvegarde.
donc comment tu souhaites affiché les valeurs ? une par une, toute en même temps dans un tableau, etc...
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
pour regis
j'ai rajouter ceci dans le menu nouveau
tu crois que me debrouille a cree une interface ?
jbernard
j'ai rajouter ceci dans le menu nouveau
Code : Tout sélectionner
Enumeration
#gad_list
#Text_0
#String_0
#Text_1
#String_1
#Text_3
#String_3
#Button_0
#Button_1
EndEnumeration
If OpenWindow(0,0,0,500,600,#PB_Window_systemMenu|#pb_window_minimizegadget|#pb_window_screencentered,"Gestion De password")
If CreateMenu(0,WindowID())
MenuTitle("File")
MenuItem(1,"Nouveau")
MenuItem(2,"Open")
MenuItem(3,"Save")
MenuItem(4,"Load ")
MenuItem(5,"Quit")
CreateGadgetList(WindowID(0))
ListIconGadget(#gad_list,2,2,490,590 ,"Site ",200)
AddGadgetColumn(#gad_list,1,"Password",120)
AddGadgetColumn(#gad_list,1,"Login",180)
EndIf
Repeat
EventID.l = WaitWindowEvent()
Select EventID
Case #PB_EventMenu
Select EventMenuID()
Case 1
If OpenWindow(1, 336, 120, 385, 330, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Boite de saisie")
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 10, 30, 140, 20, "Nom du site ", #PB_Text_Center)
StringGadget(#String_0, 50, 60, 280, 30, "")
TextGadget(#Text_1, 0, 110, 140, 20, "Login", #PB_Text_Center)
StringGadget(#String_1, 50, 140, 280, 30, "")
TextGadget(#Text_3, 0, 180, 140, 20, "password", #PB_Text_Center)
StringGadget(#String_3, 50, 210, 280, 30, "")
ButtonGadget(#Button_0, 60, 270, 80, 30, "OK")
ButtonGadget(#Button_1, 240, 270, 80, 30, "cancel")
EndIf
EndIf
EndSelect
Case #WM_CLOSE
Quit=1
EndSelect
Until Quit =1
EndIf
jbernard
voilà comme promis un exemple t'expliquant comment gérer la sauvegarde des éléments.
evidemment je pense que ne demande qu'a etre complété. on pourrait penser par exemple au cryptage des items.
dans cet exemple, j'appelle "item" un élément : ( site, login, password )
un élément peut se définir avec des structures ( Item_Struct )
chaque item est placé dans une liste ( NewList Items.Item_Struct() )
ensuite cette liste est manipulable à volonté
grace a AddElement() , Foreach Items(), etc...
ensuite la gestion du fichier est réalisé ici avec les fonctions "Preferences"
evidemment je pense que ne demande qu'a etre complété. on pourrait penser par exemple au cryptage des items.
dans cet exemple, j'appelle "item" un élément : ( site, login, password )
un élément peut se définir avec des structures ( Item_Struct )
chaque item est placé dans une liste ( NewList Items.Item_Struct() )
ensuite cette liste est manipulable à volonté
grace a AddElement() , Foreach Items(), etc...
ensuite la gestion du fichier est réalisé ici avec les fonctions "Preferences"
Code : Tout sélectionner
; Chaque item sera stocké dans une liste
Structure Item_Struct
site.s
login.s
password.s
EndStructure
NewList Items.Item_Struct()
; Procédures de gestion des items
Procedure.b Item_Add(site.s,login.s,password.s)
; Ajoute un item dans la liste
If AddElement(Items())
Items()\site = site
Items()\login = login
Items()\password = password
ProcedureReturn #True
EndIf
EndProcedure
Procedure.b Item_Debug()
; Affiche dans le debugger la liste des items
ForEach Items()
Debug Items()\site + ", " + Items()\login + ", " + Items()\password
Next
EndProcedure
Procedure.b Item_Load(fichier.s)
; Charge un fichier et le stocke dans la liste des items
If OpenPreferences(fichier)
Repeat
i+1
If PreferenceGroup("Item."+Str(i))
site.s = ReadPreferenceString("Site","")
login.s = ReadPreferenceString("Login","")
password.s = ReadPreferenceString("Password","")
Item_Add(site,login,password)
Else
Break
EndIf
ForEver
ProcedureReturn #True
EndIf
EndProcedure
Procedure.b Item_Save(fichier.s)
; Enregistre tous les items dans un fichier
If CreatePreferences(fichier)
ForEach Items()
i+1 : PreferenceGroup("Item."+Str(i))
WritePreferenceString("Site",Items()\site)
WritePreferenceString("Login",Items()\login)
WritePreferenceString("Password",Items()\password)
Next
ClosePreferences()
ProcedureReturn #True
EndIf
EndProcedure
; Création de quelques items
Item_Add("www.riri.com","riri","123")
Item_Add("www.fifi.com","fifi","456")
Item_Add("www.loulou.com","loulou","789")
; Sauvegarde puis relecture du fichier
Item_Save("fichier.ini")
ClearList(Items())
Item_Load("fichier.ini")
Item_Debug()
End
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
ben presque.
tu arrive bien a creer tes interfaces. c deja ca
maintenant il faut gérer les evenements pour chacune d'elles
ton code original, transformé pour que ce soit plus fonctionnel, plus propre
tu arrive bien a creer tes interfaces. c deja ca
maintenant il faut gérer les evenements pour chacune d'elles
ton code original, transformé pour que ce soit plus fonctionnel, plus propre
Code : Tout sélectionner
;
; Numéros des FENETRES
;
Enumeration
#Window_Main
#Window_New
EndEnumeration
;
; Numéros des GADGETS
;
Enumeration
#gad_list
#Text_0
#String_0
#Text_1
#String_1
#Gad_Site0
#Gad_Site
#Gad_Login0
#Gad_Login
#Gad_Password0
#Gad_Password
#Gad_OK
#Gad_Cancel
EndEnumeration
;
; Numéros des MENUS
;
Enumeration
#Menu_New
#Menu_Open
#Menu_Save
#Menu_SaveAs
#Menu_Quit
EndEnumeration
Procedure New()
;
; Création d'un élément
;
If OpenWindow(#Window_New, 336, 120, 385, 330, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Boite de saisie")
HideWindow(#Window_Main,1)
; Création de l'interface
If CreateGadgetList(WindowID(#Window_New))
TextGadget(#Gad_Site0, 10, 30, 140, 20, "Nom du site ", #PB_Text_Center)
StringGadget(#Gad_Site, 50, 60, 280, 30, "")
TextGadget(#Gad_Login0, 0, 110, 140, 20, "Login", #PB_Text_Center)
StringGadget(#Gad_Login, 50, 140, 280, 30, "")
TextGadget(#Gad_Password0, 0, 180, 140, 20, "Password", #PB_Text_Center)
StringGadget(#Gad_Password, 50, 210, 280, 30, "")
ButtonGadget(#Gad_OK, 60, 270, 80, 30, "OK")
ButtonGadget(#Gad_Cancel, 240, 270, 80, 30, "Annuler")
EndIf
; Gestion de la boucle
Repeat
Select WaitWindowEvent()
Case #WM_CLOSE : Break
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Gad_Site
Case #Gad_Login
Case #Gad_Password
Case #Gad_Cancel : Break
Case #Gad_OK
Debug GetGadgetText(#Gad_Site)
Debug GetGadgetText(#Gad_Login)
Debug GetGadgetText(#Gad_Password)
Break
EndSelect
EndSelect
ForEver
; Fermeture
CloseWindow(#Window_New)
HideWindow(#Window_Main,0)
BringWindowToTop_(WindowID(#Window_Main))
EndIf
EndProcedure
If OpenWindow(#Window_Main,0,0,500,600,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered,"Gestion De password")
If CreateMenu(0,WindowID(#Window_Main))
MenuTitle("Fichier")
MenuItem(#Menu_New,"Nouveau")
MenuItem(#Menu_Open,"Ouvrir...")
MenuBar()
MenuItem(#Menu_Save,"Enregistrer")
MenuItem(#Menu_SaveAs,"Enregistrer sous...")
MenuBar()
MenuItem(#Menu_Quit,"Quitter")
EndIf
If CreateGadgetList(WindowID(#Window_Main))
ListIconGadget(#gad_list,2,2,490,575 ,"Site ",200)
AddGadgetColumn(#gad_list,1,"Password",120)
AddGadgetColumn(#gad_list,1,"Login",180)
EndIf
Repeat
Select WaitWindowEvent()
Case #WM_CLOSE : Break
Case #PB_EventMenu
Select EventMenuID()
Case #Menu_New : New()
Case #Menu_Open
Case #Menu_Save
Case #Menu_SaveAs
Case #Menu_Quit : Break
EndSelect
EndSelect
ForEver
EndIf
voici un source de + en + complet et qui suis le chemin que tu as pris...
il reprend ton interface, et utilise les fonctions de gestion du fichier que je t'ai montré.
essaye et j'espère que ca t'aidera beaucoup.
étudie bien ce code, sinon ca sert rien.
amuse toi bien
il reprend ton interface, et utilise les fonctions de gestion du fichier que je t'ai montré.
essaye et j'espère que ca t'aidera beaucoup.
étudie bien ce code, sinon ca sert rien.
amuse toi bien

Code : Tout sélectionner
;-
;- GESTION DES LOGINS
;- Pour jbernard13, le 07-09-04
;-
#TITLE = "Gestion De password"
;-
;- ITEMS - Définition d'un item
;-
Structure Item_Struct
site.s ; Nom du site
login.s ; Identifiant
password.s ; Mot de passe
EndStructure
;-
;- ITEMS - Liste destinée à contenir tous les items
;-
NewList Items.Item_Struct()
;-
;- ITEMS - Procédures de gestion des items
;-
Procedure.b Item_Clear()
;-
;- Remise à zero de la liste des items
;-
ClearList(Items())
EndProcedure
Procedure.b Item_Add(site.s,login.s,password.s)
;-
;- Ajoute un item dans la liste
;-
If AddElement(Items())
Items()\site = site
Items()\login = login
Items()\password = password
ProcedureReturn #True
EndIf
EndProcedure
Procedure.l Item_Load(fichier.s)
;-
;- Charge un fichier et le stocke dans la liste des items
;- Retourne le nombre d'items chargés
;-
If OpenPreferences(fichier)
Repeat
i+1
If PreferenceGroup("Item."+Str(i))
site.s = ReadPreferenceString("Site","")
login.s = ReadPreferenceString("Login","")
password.s = ReadPreferenceString("Password","")
Item_Add(site,login,password)
Else
Break
EndIf
ForEver
ClosePreferences()
ProcedureReturn i
EndIf
EndProcedure
Procedure.l Item_Save(fichier.s)
;-
;- Enregistre tous les items dans un fichier
;- Retourne le nombre d'items enregistrés
;-
If CreatePreferences(fichier)
ForEach Items()
i+1
PreferenceGroup("Item."+Str(i))
WritePreferenceString("Site",Items()\site)
WritePreferenceString("Login",Items()\login)
WritePreferenceString("Password",Items()\password)
Next
ClosePreferences()
ProcedureReturn i
EndIf
EndProcedure
;-
;- CONSTANTES
;-
Enumeration ; Numéros des FENETRES
#Window_Main
#Window_New
EndEnumeration
Enumeration ; Numéros des GADGETS
#Gad_Item
#Gad_Site0
#Gad_Site
#Gad_Login0
#Gad_Login
#Gad_Password0
#Gad_Password
#Gad_OK
#Gad_Cancel
EndEnumeration
Enumeration ; Numéros des MENUS
#Menu_New
#Menu_Empty
#Menu_Open
#Menu_Append
#Menu_Save
#Menu_SaveAs
#Menu_Quit
#Menu_About
EndEnumeration
;-
;- PROCEDURES
;-
Procedure About()
; Affiche la fenêtre d'information
MessageRequester("A Propos",#TITLE,#MB_IconInformation)
EndProcedure
Procedure Empty()
;-
;- Vide la liste des items
;-
Item_Clear()
ClearGadgetItemList(#Gad_Item)
EndProcedure
Procedure New()
;-
;- Création d'un élément
;-
If OpenWindow(#Window_New, 336, 120, 385, 330, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Boite de saisie")=#Null
ProcedureReturn
EndIf
HideWindow(#Window_Main,#True)
If CreateGadgetList(WindowID(#Window_New))
TextGadget(#Gad_Site0, 10, 30, 140, 20, "Nom du site ", #PB_Text_Center)
StringGadget(#Gad_Site, 50, 60, 280, 30, "")
TextGadget(#Gad_Login0, 0, 110, 140, 20, "Login", #PB_Text_Center)
StringGadget(#Gad_Login, 50, 140, 280, 30, "")
TextGadget(#Gad_Password0, 0, 180, 140, 20, "Password", #PB_Text_Center)
StringGadget(#Gad_Password, 50, 210, 280, 30, "")
ButtonGadget(#Gad_OK, 60, 270, 80, 30, "OK")
ButtonGadget(#Gad_Cancel, 240, 270, 80, 30, "Annuler")
ActivateGadget(#Gad_Site)
EndIf
; Gestion de la boucle
Repeat
Select WaitWindowEvent()
Case #WM_CLOSE : Break
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Gad_Cancel : Break
Case #Gad_OK
a.s = GetGadgetText(#Gad_Site)
b.s = GetGadgetText(#Gad_Login)
c.s = GetGadgetText(#Gad_Password)
If a<>"" And b<>"" And c<>""
Item_Add(a,b,c)
AddGadgetItem(#Gad_Item,-1,a+Chr(10)+b+Chr(10)+c)
Break
Else
MessageRequester("Erreur","Les champs doivent être renseignés",#MB_IconError)
EndIf
EndSelect
EndSelect
ForEver
; Fermeture de la boite de dialogue
CloseWindow(#Window_New)
HideWindow(#Window_Main,#False)
BringWindowToTop_(WindowID(#Window_Main))
EndProcedure
Procedure Open(append.b)
;-
;- Ouvre un fichier
;-
fichier.s = OpenFileRequester("Ouvrir","fichier.ini","Logins | *.ini",0)
If fichier <> ""
If append
ClearGadgetItemList(#Gad_Item)
Else
Item_Clear()
EndIf
Item_Load(fichier)
ForEach Items()
line.s = Items()\site+Chr(10)+Items()\login+Chr(10)+Items()\password
AddGadgetItem(#Gad_Item,-1,line)
Next
EndIf
EndProcedure
Procedure Save()
;-
;- Enregistre le fichier
;-
Item_Save("fichier.ini")
EndProcedure
Procedure SaveAs()
;-
;- Enregistre sous...
;-
fichier.s = SaveFileRequester("Enregistrer sous","fichier.ini","Logins | *.ini",0)
If fichier <> ""
Item_Save(fichier)
EndIf
EndProcedure
Procedure Main()
If OpenWindow(#Window_Main,0,0,500,600,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered,#TITLE)=#Null
ProcedureReturn
EndIf
If CreateMenu(0,WindowID(#Window_Main))
MenuTitle("Fichier")
MenuItem(#Menu_New,"Nouveau")
MenuItem(#Menu_Empty,"Vider la liste")
MenuBar()
MenuItem(#Menu_Open,"Ouvrir...")
MenuItem(#Menu_Append,"Insérer...")
MenuBar()
MenuItem(#Menu_Save,"Enregistrer")
MenuItem(#Menu_SaveAs,"Enregistrer sous...")
MenuBar()
MenuItem(#Menu_Quit,"Quitter")
MenuTitle("?")
MenuItem(#Menu_About,"A Propos")
EndIf
If CreateGadgetList(WindowID(#Window_Main))
ListIconGadget(#Gad_Item,2,2,490,575 ,"Site ",200)
AddGadgetColumn(#Gad_Item,1,"Password",120)
AddGadgetColumn(#Gad_Item,2,"Login",180)
EndIf
Repeat
Select WaitWindowEvent()
Case #WM_CLOSE : Break
Case #PB_EventMenu
Select EventMenuID()
Case #Menu_New : New()
Case #Menu_Empty : Empty()
Case #Menu_Open : Open(#False)
Case #Menu_Append : Open(#True)
Case #Menu_Save : Save()
Case #Menu_SaveAs : SaveAs()
Case #Menu_Quit : Break
Case #Menu_About : About()
EndSelect
EndSelect
ForEver
EndProcedure
;-
;- DEMARRAGE DU PROGRAMME
;-
Main()
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
"merci, merci, merci" : oui merci mais n'en fait pas trop.
comme je t'ai dis, étudie bien le code avant d'aller plus loin.
"tu crois que j'avance dans la programation ?" : j'en sais rien. tu t'y intéresse donc tu avances !!! de là à t'en dire plus, à toi de juger. honnêtement j'ai rien vu parmis tes productions qui me laisse penser que tu progresses, je n'en sais rien.
a lire tes questions, je sentirais une progression quand tu fera preuve d'une "vraie" capacité d'initiative...
Or pour le moment, mais c'est normal pour un total néophyte, tu poses la question avant d'avoir vraiment chercher.
et c'est pas comme çà que tu progresseras.
l'idée de ton prog est bonne, pour un 1ère lancée dans la programmation. c'est pour çà que je t'aide.
si on demandais a certains ici comment ils ont progressés, ils te répondront peut etre que c'est venu en forgeant...
le déclic est de comprendre qu'il faut pas avoir peur de tout cassé.
la prog c delicat mais ya jamais mort d'homme (en principe). fait des conneries, fais en plein, et tu ne pourra qu'en retenir les leçons. moi je vois çà comme çà.
et pour repondre a ton mail privé : j'ai pas commencé la prog avec purebasic.
j'ai commencé bien avant, avec plusieurs langages très différents les uns des autres.
quand j'ai découvert pure, j'ai tout de suite accroché, j'ai tout de suite 'senti' comment faire...
et puis tu demandes comment faire pour commencer un prog.
ya pas vraiment de règles. c difficile çà comme question.
si je t'explique comment je fais moi, d'autres diront peut-etre : bouhh n'importe quoi.
enfin, desolé mais là je comprends pas la question :
comme je t'ai dis, étudie bien le code avant d'aller plus loin.
"tu crois que j'avance dans la programation ?" : j'en sais rien. tu t'y intéresse donc tu avances !!! de là à t'en dire plus, à toi de juger. honnêtement j'ai rien vu parmis tes productions qui me laisse penser que tu progresses, je n'en sais rien.
a lire tes questions, je sentirais une progression quand tu fera preuve d'une "vraie" capacité d'initiative...
Or pour le moment, mais c'est normal pour un total néophyte, tu poses la question avant d'avoir vraiment chercher.
et c'est pas comme çà que tu progresseras.
l'idée de ton prog est bonne, pour un 1ère lancée dans la programmation. c'est pour çà que je t'aide.
si on demandais a certains ici comment ils ont progressés, ils te répondront peut etre que c'est venu en forgeant...
le déclic est de comprendre qu'il faut pas avoir peur de tout cassé.
la prog c delicat mais ya jamais mort d'homme (en principe). fait des conneries, fais en plein, et tu ne pourra qu'en retenir les leçons. moi je vois çà comme çà.
et pour repondre a ton mail privé : j'ai pas commencé la prog avec purebasic.
j'ai commencé bien avant, avec plusieurs langages très différents les uns des autres.
quand j'ai découvert pure, j'ai tout de suite accroché, j'ai tout de suite 'senti' comment faire...
et puis tu demandes comment faire pour commencer un prog.
ya pas vraiment de règles. c difficile çà comme question.
si je t'explique comment je fais moi, d'autres diront peut-etre : bouhh n'importe quoi.
enfin, desolé mais là je comprends pas la question :
peut expliquer plus clairement ?je voudrais savoir coment faire ensuite editer un items
c'est a dire il fois que 'jai saisie mes 2 elements
comment dire au programme de les editer .
en gros tu fais presque comme tu veux.je veux juste savoir c'est comme marche la structure d'un programme
une règle à suivre tout de meme :
tu ne peux pas exploiter, utiliser quelquechose avant de l'avoir créé.
c'est pour çà en général que l'on met les procedures plus ou moins au debut du source.
il faut que tu comprennes clairement qu'un programme est succession, ligne après ligne, de fonctions. on appelle çà une séquence.
le programme démarre en haut du source, puis continue jusqu'en bas.
Si je peux me permettre "comment faire ?"
Bonsoir,
J'arrive et je débute avec PureBasic.
Les explication de flype sont extra pas de langue de bois.
Pour ma part, j'utilise les tutos et pour bien comprendre je fait des modif dans les exemples proposé dans les tutos (voir forum débutant).
Voila !!
J'arrive et je débute avec PureBasic.
Les explication de flype sont extra pas de langue de bois.
Pour ma part, j'utilise les tutos et pour bien comprendre je fait des modif dans les exemples proposé dans les tutos (voir forum débutant).
Voila !!

-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
merci Flype
juste 2 questions
a quoi cette commande :
#Null
que je veux rajouter dans mon programme
c'est la possiblité d'effacer une ligne de donnée et modifier cette ligne donnée ,je crois qu'il faut que je rajoute des chexbox
mais bon
j'ai compris une bonne partie du programme deja
je suis entrain de refaire l'interface en utilisant des fonts .
peux tu me dire en message privé
la façon comment tu conçois un programme ?
par où tu commence
Jbernard
juste 2 questions
a quoi cette commande :
#Null
que je veux rajouter dans mon programme
c'est la possiblité d'effacer une ligne de donnée et modifier cette ligne donnée ,je crois qu'il faut que je rajoute des chexbox
mais bon
j'ai compris une bonne partie du programme deja
je suis entrain de refaire l'interface en utilisant des fonts .
peux tu me dire en message privé
la façon comment tu conçois un programme ?
par où tu commence
Jbernard
oki je le ferais
#Null est la meme chose que 0
c'est assez courant dans beaucoup de langages.
'null' signifie 'rien' et souvent 'rien' en prog c'est 0.
c'est comme #False qui vaut aussi 0 et #True qui vaut 1
mais tout çà n'est donc que pour rendre plus lisible.
en fait ca change rien au programme une fois compilé si tu écris #Null ou 0 par exemple.
on appelle çà aussi une constantes. la valeur d'une constante ne change jamais. contrairement à une variable qui, elle, hum varie
vouaaala


#Null est la meme chose que 0
c'est assez courant dans beaucoup de langages.
'null' signifie 'rien' et souvent 'rien' en prog c'est 0.
c'est comme #False qui vaut aussi 0 et #True qui vaut 1
mais tout çà n'est donc que pour rendre plus lisible.
en fait ca change rien au programme une fois compilé si tu écris #Null ou 0 par exemple.
on appelle çà aussi une constantes. la valeur d'une constante ne change jamais. contrairement à une variable qui, elle, hum varie

vouaaala

Excellent. c'est très bien çà.Pour ma part, j'utilise les tutos et pour bien comprendre je fait des modif dans les exemples proposé dans les tutos (voir forum débutant).
Voila !!
