Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Patrick,

Le 07/11/2018 à 14:05, Patrick Gelin a écrit :
Bonjour,

Je viens de trouver la raison de ce bug :

\o/


Une seule macro évènement :

Sub CmdSelectionner(Event As Object)

qui avait le même nom qu'une variable global CmdSelectionner = 5000 déclarée dans un autre module.

-> dotez-vous d'un standard de nommage des entités et ça n'arrivera plus.

Je procède ainsi depuis mes premiers pas en Pascal, à tel point qu'il m'est maintenant souvent pénible de lire les bouts de code que j'ai l'occasion de consulter.

Ca ne garantira pas l'absence de bugs mais ça vous aidera fichtrement à vous lire (l'ordinateur, on s'en fiche).

Recherchez ces termes sur internet, vous trouverez des tas d'articles très bien écrits et qui vous y aideront.

A la compilation cela passe sans aucune erreur signalée (interprétation basic oblige diront certains sauf que dans mes modules je déclare quand même Option explicit ...

oui, Basic n'est pas un langage très "sûr" (peu typé; très, trop permissif...)

Et aussi je ne m'attendais pas à un syndrôme d'appel récursif provoqué par une variabe et une procédure ...

même si je ne suis pas étonné a posteriori, je ne m'y serais pas attendu non plus.


De plus cette macro n'était même pas appelée par mon application avant le crash, elle répondait à un bouton dans une boite de dialogue non ouverte. Mais je comprends que Basic précharge un maximum de code et je ne comprends pas bien ce qu'il fait avec ce code avant son execution ...

Vous comprenez maintenant ce que "faille par injection de code" veut dire.


Existe-t-il une extension  module qui aide au développement, avec par exemple un précompilateur pour vérifier la redondance des variables et valider un maximum de règles spécifiques au langage Basic OOo ?

Non, pas encore. Je me suis essayé à créer un outil de recensement des identifiants d'un programme et de leurs appels. En Basic c'est horrible à gérer et je n'y ai réussi qu'à moitié (verre à moitié plein ;) Le reste... reste en plan faute de temps. Et probablement que ce serait beaucoup plus "facile" à programmer en Python.

Mais d'autres se penchent peut-être sur le sujet...


Basic et l'IDE LibO sont très pauvres (idem sous VBA, hein ? pour autant que j'aie pu voir). En fait, de mon point de vue, c'est là qu'est le gros écueil : ces langages et environnements permettent difficilement de documenter le travail (et même font tout pour qu'il ne le soit pas), par conséquent ne donnent/poussent pas vers les bonnes habitudes. D'où du code souvent incompréhensible par quiconque hormis le concepteur (voire). D'où une réputation souvent méritée...


Très cordialement,
--
Jean-Francois Nifenecker, Bordeaux


--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.