Le Renard bleu ou le terrier du néophyte

"Le début ne laisse pas présager la fin." [Hérodote]

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 29 mars 2007

Bleu le Renard

Quelques images de LaMu
http://www.lamu-design.com/

Lire la suite

lundi 26 mars 2007

Portée des variables

Les variables utilisées dans Visual FoxPro peuvent avoir une portée (étendue) différente suivant la manière dont elles ont été déclarées. De cette déclaration dépendra leur visibilité par les programmes, procédures, et objets; ainsi que leur durée de vie.

Il existe 3 sortes de variables, dont font aussi partie les variables issues du passage de paramètres. On distingue les variables locales, privées et publiques (globales). Par défaut une variable est privée (private) et le fait de créer une variable par exemple par lnvar=150 crée une variable privée. L'aide de Visual Foxpro 6 donne les définitions suivantes :
Variable
Emplacement de la mémoire de l'ordinateur dans lequel sont stockées des données. Vous pouvez modifier le contenu d'une variable, mais son nom et sa zone de stockage sont réservés jusqu'à ce que vous terminiez la session Visual FoxPro ou que vous supprimiez la variable. Les variables et leurs valeurs ne sont pas conservées, sauf si vous les enregistrez sur disque avant de quitter Visual FoxPro.
Durée de vie
Terme se rapportant à une variable qui continue d'exister après qu'un appel de fonction ou un programme soit terminé. Les variables globales continuent d'exister, mais pas les variables locales.

Variables PRIVEES - Commande PRIVATE
Variable supprimée dès que la routine dans laquelle elle est définie prend fin. Les variables privées sont utilisées par défaut dans Visual FoxPro et ne nécessitent aucun mot réservé particulier pour être définies. Leur étendue peut néanmoins être limitée à l'aide du mot réservé PRIVATE s'il existe déjà une variable du même nom à un niveau supérieur. PRIVATE ne crée pas de variable, contrairement à LOCAL et PUBLIC qui créent les variables avec une valeur logique à .F. (Faux).

Variables LOCALES - Commande LOCAL
Les variables locales et les tableaux locaux de variables peuvent uniquement être utilisés et modifiés au sein de la procédure ou de la fonction dans laquelle ils ont été créés.
Un programme de niveau supérieur ou inférieur n'y aura pas accès. Une fois que la procédure ou la fonction qui les contient a terminé son exécution, les variables et tableaux de variables locaux sont supprimés.
Les variables et tableaux créés à l'aide de LOCAL sont initialisés à la valeur Faux (.F.). Il convient de déclarer "Local" une variable ou un tableau avant qu'une valeur ne lui soit affectée. Si une valeur à la variable ou au tableau est affectée avant de l'avoir déclaré comme local à l'aide de LOCAL, Visual FoxPro renvoie un message d'erreur.
Les variables locales peuvent être passées par référence.
La commande LOCAL ne doit pas être abrégée, (il y aurait confusion avec la commande LOCATE).

Variables GLOBALES - Commande PUBLIC
Ces variables (variable publique) sont définies à l'aide du mot réservé PUBLIC, elles sont accessibles à toutes les procédures et fonctions, et pas seulement à celles dans lesquelles elle sont définies.

LPARAMETERS Affecte des données provenant d'un programme appelant à des variables, et crée des variables ou tableaux locaux au sein d'un programme, d'une procédure ou d'une fonction utilisateur appelés. PARAMETERS permet de créer des variables ou tableaux privés.

Les bonnes règles de la programmation objet avec Visual FoxPro, et le souci de la performance, recommandent d'éviter, autant que possible, l'utilisation de variables publiques, et de privilégier leur remplacement par les propriétés des objets.

mercredi 14 mars 2007

De la Rigueur de l'écriture

Visual FoxPro est un langage permissif, c'est sûrement le principal reproche qu'on puisse lui faire, même si on peut apprécier, parfois, ces facilités et cette souplesse.
Ainsi on peut déclarer à n'importe quel endroit du code une variable d'un nom et d'un type quelconque, et affecter une valeur d'un autre type, plus tard dans le code.
Ces pratiques, ne sont, bien sur, pas recommandables, elles peuvent produire des effets catastrophiques, entraînant des erreurs mal maîtrisées. La rigueur dans l'écriture du code doit donc être l'un des leitmotivs du développeur Visual FoxPro. Quelques bonnes habitudes doivent permettre au programmeur débutant d'éviter ces ecueils. Donnez à vos objets et à vos variables des noms les identifiant clairement. Concernant les variables, adoptez la convention suivante: Prefixez l'étendue et le type de données: Pour l'étendue :
l Locales - p Privées (par défaut) - g Publiques (Globales) - t Paramètres Pour le Type :
a - Tableau c - Caractère y - Monétaires d - Date t - DateHeure (Time) b - Double f - Flottant l - Logique n - Numérique o - Objet u - Inconnu

Ainsi, une variable locale de type caractére sera nommée par exemple lcChaine, et à la lecture du code, on s'attendra à ce que son contenu soit effectivement une chaîne de caractères de portée locale.

Vous trouverez ici une liste pour les types de données de VFP9

Et ce tableau suggère une convention pour les objets de VFP9

Le fait de préfixer suivant ces convention, ne présagera pas de la réalité du contenu de la variable, mais rendra le code plus lisible, et vous guidera dans la recherche d'erreurs éventuelles.

J'explorerai dans un prochain billet la portée des variables. Les remarques et les notes à cet égard sont les bienvenues. Richard