PureBasic

Forums PureBasic
Nous sommes le Jeu 22/Aoû/2019 5:52

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 93 messages ]  Aller à la page Précédente  1 ... 3, 4, 5, 6, 7  Suivante
Auteur Message
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Ven 31/Aoû/2012 23:24 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14535
microdevweb a écrit:
P(ou que comme dans certaines versions de Basic on puisse activer cette option)


Citation:
EnableExplicit
DisableExplicit

Description

Active ou désactive le mode explicite. Quand il est actif, toutes les variables qui ne sont pas explicitement déclarées avec Define, Global, Protected ou Static ne seront pas acceptées par le compilateur et génèreront une erreur. Cela peut aider à éviter les erreurs de frappe.



Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Sam 01/Sep/2012 5:02 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1645
Localisation: Belgique
Merci Dobro,

Bien content de savoir que cette option existe. (n'est repris dans l'aide que dans l'index) je penses d'ailleurs que je vais parcourir l'index fonction par fonction....

_________________
Windows 10 64 bits PB: 5.70 ; 5.71 beta 2


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Sam 01/Sep/2012 11:37 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8735
microdevweb a écrit:
je penses d'ailleurs que je vais parcourir l'index fonction par fonction....

C'est bien le plus long, se rappeler que telle ou telle fonction existe :D

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Sam 01/Sep/2012 13:31 
Hors ligne

Inscription: Lun 01/Fév/2010 17:04
Messages: 65
Localisation: Meuse
Autre chose chose importante, les conventions de nommages ! Même si PB est insensible à la casse, c'est quand même plus simple de se repérer :)
J'utilise perso maVariable, MaProcédure(), st_MaStructure, #MA_CONSTANTE, List_MaListe etc...

Selon les cas j'adapte évidemment, mais c'est super important d'autant plus quand on travaille en équipe où là, c'est primordial !!

Pour l'organisation des fichiers, cela dépend à mon sens du projet en question. Je réalise un logiciel actuellement avec gestion de profils, d'information par jour avec des bases de données. Je vais faire un dossier "Profiles", qui contiendra tout les codes nécéssaire pour la gestion profil, mais aussi son stockage. En temps normal je l'aurais mis dans un dossier "src", mais sur ce cas précis non.

Le secret si je puis dire, c'est de tout définir AVANT le projet, et de respecter ce qu'on décide.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 13:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4040
Il m'arrive de faire ca :
Code:
for i=1 to 100
if random(10)=1
i-1
endif
next


Je schématise mais regardez bien le 'i-1'.
Est ce une mauvaise habitude a perdre ou est ce une beauté du code ?

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 13:57 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14535
si j'etais encore modo , j'aurai effacé une bonne partie des messages ici ,
qui pour la plupart ne reprennent que ce qui a deja été dis avant

donc manifestement posté par des membres qui ne prennent pas le temps de lire ce qui a deja été ecris ...

et j'aurai aussi effacé ton post SPH , car sous couvert de coller au topic, tu poses en fait une question sur ton code ..
donc cela aurai tout aussi bien pu etre ecrit en rubrique Debutant ..

je vais quand meme te répondre

a partir du moment ou on ne sait pas qu'elle est le but de cette boucle qui de façon pseudo aléatoire recule d'un cran
c'est difficile de te repondre ..

mais , il y a quand meme une chose qui est loin d'etre parfait dans ta boucle c'est ceci :

que ce passe t'il si dès le debut il sort 2 fois de suite le chiffre 1 ??

ben tu diminue "I" 2 fois ... ta boucle se retrouve a -1
et je ne sais pas pourquoi , mais quelque chose me dis que tu risque un plantage ...

bref pas le tout de diminuer "i " , encore faut t'il controler sa valeur Actuel avant ...
surtout si ce "i" sert par exemple a un point() ou un plot() , ou la c'est sur ça plante !

sinon le principe de changer la valeur de la boucle c'est simplement nécéssaire pour remplacer le Step i


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 15:28 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4040
Oui, je n'ai pas lu les posts d'avant. Je ne veux pas me taper 6 pages de commentaires... :?

Pour ce qui est de mon code, je ne demandais pas habilement si je pouvais le faire. Je le fais et j'y trouve une beauté.
Et non, le code ne donne jamais -1

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 15:40 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4222
Localisation: Arras, France
SPH a écrit:
Oui, je n'ai pas lu les posts d'avant. Je ne veux pas me taper 6 pages de commentaires... :?

Pour ce qui est de mon code, je ne demandais pas habilement si je pouvais le faire. Je le fais et j'y trouve une beauté.
Et non, le code ne donne jamais -1

Dobro a raison, il est POSSIBLE que ton code plante, donc ça arrivera. Il faut modifier en fonction de cette éventualité. Et puis il a raison aussi pour le nettoyage du topic ;)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 15:44 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 24/Aoû/2005 10:42
Messages: 466
Dobro a écrit:
mais , il y a quand meme une chose qui est loin d'etre parfait dans ta boucle c'est ceci :

que ce passe t'il si dès le debut il sort 2 fois de suite le chiffre 1 ??

ben tu diminue "I" 2 fois ... ta boucle se retrouve a -1
et je ne sais pas pourquoi , mais quelque chose me dis que tu risque un plantage ...

Ben non, chaque fois que le random sort 1, i est décrémenté de 1, puis en passant dans le next, il est incrémenté de 1.... donc i ne change pas quand random(10) = 1

_________________
Bureau : Win10 64bits
Maison : Macbook Pro 13" Retina / SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone X 256 Go


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 15:44 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4040
Plantage pas possible selon moi :
Code:
For i=1 To 100
If Random(10)=1
i-5
EndIf
Debug i
Next

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 15:53 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14535
Mindphazer a écrit:
Ben non, chaque fois que le random sort 1, i est décrémenté de 1, puis en passant dans le next, il est incrémenté de 1.... donc i ne change pas quand random(10) = 1


tu t'amusera a faire Point(0,0) ;)

là en l'etat sa boucle n'as aucun intérêt ..
je ne critique pas ici les 5 ligne de codes , je critique la méthode ...

imagine que tu veuille utiliser un truc dans le genre pour lire les points d'une image , ou pour les ecrires ...
le i a un moment T aura bien la valeur 0 AVANT le NEXT

du coup comme il n'y a pas de control , ça risque le plantage ...

de plus son deuxieme exemple retire 5 !!
alors bien sur apparemment Fred a prevu le coup et ça part dans les chiffres négatif

mais bon , un comportement comme ça n'est pas forcement prévisible

Code:

For i=1 To 100
   i=i-5
   Debug i  ; on part dans les chiffres négatif .....
Next i
; EPB


c'est de la bidouille .... :)
ça reviens a faire -4


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 15:57 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 24/Aoû/2005 10:42
Messages: 466
Dobro a écrit:
imagine que tu veuille utiliser un truc dans le genre pour lire les points d'une image , ou pour les ecrires ...
le i a un moment T aura bien la valeur 0 AVANT le NEXT

Oui, forcément, là, je suis d'accord avec toi.
Le tout étant de savoir ce qu'il y a (ou pas) entre le i-1 et le NEXT...

_________________
Bureau : Win10 64bits
Maison : Macbook Pro 13" Retina / SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone X 256 Go


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Mar 11/Sep/2012 16:06 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14535
oui :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Methode et beauté du code
MessagePosté: Lun 24/Sep/2012 11:53 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 25/Aoû/2004 15:14
Messages: 426
Localisation: Grenoble
Pour revenir à "beauté du code", je trouve dommage que les éditeurs n'affiche pas une sorte de "carte" (type carte heuristique...) avec les liens vers les différents sources et ainsi voir où se trouve le code "principal" celui dans lequel se trouve la boucle principale.
Je parle d'un affichage graphique permettant d'embrasser le projet d'un seul regard !

Idéalement, il permettrait de visualiser les procédures de ressources (ou librairies), le code pour les formes, etc.

En effet, sur mes projets de domotique, j'ai une sorte de librairie (pourrait-être un PBI ?) contenant les procédures liées à la domotique (donc exploitable uniquement avec cette domotique).
Ensuite, j'essaye de générer mes fenêtres à partir de Form Designer (bientôt Visual Designer ?) qui me génère 2 fichiers (common et xxxx).
Enfin, les procédures travaillant sur des éléments externes (fichiers, etc.) mais qui n'ont rien de nécessaire ou définitif.

Sinon, comme tous j'essaye d'utiliser les commentaires (et les [;-] ), et en entête, outre les infos date/modifs/... je mets une variable globale de version : ainsi quand le programme apparaît, je connais de suite sa version (ou si je retrouve un code sur plusieurs archives...)

Ci-dessous, le 'pire' (ou meilleur) entête que j'ai fait :
Code:
; ************************************************************************************
; * T&o & T&a                                    Velbus communication                *
; * Author : D. Roumanet                         Date : 31/10/2011                   *
; * e-mail : golfy @ free . fr                   Ver. : Purebasic : 4.60)            *
; ************************************************************************************
; * [+] Ajout      [*] Amélioration     [.] Correction     [-] Suppression           *
; ************************************************************************************
; v1.10 ------------------------------------------------------------------- 03/06/2012
;      (*) Graphiques automatiques (moyenne et écart + gestion taille)
;
; v1.09 ------------------------------------------------------------------- 03/04/2012
;      (+) Scan de nom des parties des modules
;      (*) correction bug dans procédure HEXA2
;
; v1.08 ------------------------------------------------------------------- 14/04/2012
;      (*) Déplacement fichiers stats temp dans... /Stats/
;      (+) Possibilité relais, volets et dimmer (Blink, Open/Close/Intermediate...)
;      (*) Formulaire de saisie d'évènement (réveil)
;
; v1.07 ------------------------------------------------------------------- 09/03/2012
;      (*) Page web auto-refresh + ajout date
;      (*) Liste pour GraphTemp (évite plantage en cas de mauvaise saisie)
;      (.) Correction bug date pour fichier (procedure writetempfile)
;
; v1.06 ------------------------------------------------------------------- 04/03/2012
;      (+) Edition evénements possible (ListIconGadget)
;
; v1.05 ------------------------------------------------------------------- 19/01/2012
;      (+) Ecriture page web dynamique et graphique dynamique
;

_________________
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Les temps changent
MessagePosté: Lun 12/Mai/2014 21:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
Les temps changent: Bind (Lier une action à un événement particulier) devient à la mode et ce n'est que le début du changement :mrgreen:

Un exemple de code très simple. BindEvent() et BindGadgetEvent() permettent de passer d'autres paramètres facultatifs (Voir aide)
Code:
Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadgets
  #String1
  #Button1
  #Button2
 
EndEnumeration

Procedure OnEventString1()
  Select EventType()
    Case #PB_EventType_Focus
      Debug "Focus"
     
    Case #PB_EventType_Change
      Debug "Change"
     
    Case #PB_EventType_LostFocus
      Debug "Lost Focus"
     
  EndSelect
EndProcedure

Procedure OnclickButton1()
  Debug "OnclickButton1()"
EndProcedure

Procedure OnclickButton2()
  Debug "OnclickButton2()"
EndProcedure

Procedure Stop()
  End
EndProcedure

If OpenWindow(#MainForm, 0, 0, 800, 600, "Bind de la mort")
  TextGadget(#PB_Any, 20, 30, 80, 20, "String1")
  StringGadget(#String1, 100, 30, 200, 20, "")
 
  ButtonGadget(#Button1, 700, 30, 80, 20, "Button1")
  ButtonGadget(#Button2, 700, 60, 80, 20, "Button1")
 
 
  ;Evenements
  BindEvent(#PB_Event_CloseWindow, @Stop())
 
  BindGadgetEvent(#String1, @OnEventString1())
  BindGadgetEvent(#Button1, @OnClickButton1())
  BindGadgetEvent(#Button2, @OnclickButton2())
   
  ;Cette partie sera peut être remplacer par une fonction plus simple
  Repeat: WaitWindowEvent() : ForEver
EndIf

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 93 messages ]  Aller à la page Précédente  1 ... 3, 4, 5, 6, 7  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités


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