[prog] Pourquoi un Basic ?

2006-05-16 Par sujet Adrien Delcour



Bonjour.

Ce n'est pas une question d'une importance 
vitale, je la pose par curiosité.

Les deux Basic que je pratique un peu (VBA et 
OooBasic) ont quelques caractères
communs qui ne me semblent pas très agréables : pas 
de raccourci (ou court-circuit)
dans l'évaluation des expressions booléennes, 
variable fictive pour la valeur de retour
d'une Function (ce qui oblige à changer le corps de 
la Function si on change son nom),
accès numérique aux éléments d'une chaîne de 
caractères (à l'aide de Mid(chaîne, i, 1))
qui me semble peu performant (ce n'est peut-être 
qu'une question d'implémentation,
je n'ai d'ailleurs pas fait d'essais en OooBasic), 
forme lourde de l'incrémentation
d'une variable numérique entière...

Il ne me semble donc pas plus facile de programmer 
en Basic qu'en C++, par exemple,
je dirais même que c'est le contraire.

Je me demande donc quel est l'avantage du 
Basic.

Si quelqu'un a une idée et veut répondre, merci 
d'avance.

A.


Re: [prog] Pourquoi un Basic ?

2006-05-16 Par sujet Adrien Delcour

Merci pour la réponse aimable, Laurent.



[ l'avantage du Basic est]
d'etre interpreté et donc multiplateforme
et simple à apréhender
mais au dela du langage c'est l'api et sa simplicité à mettre en oeuvre 
qui fait la puisance


Je crois en effet que c'est là l'essentiel.


pour un compromis, tu peux eventuellement utiliser python (ou java)


D'après votre livre, pp. 8-9, il est plus facile de recourir à l'API par le 
biais

d'OOoBasic. Je suppose donc qu'on a privilégié le Basic, mais
j'imagine que toutes les facilités qu'on a fournies en Basic pourraient 
l'être

dans d'autres langages aussi.


Je t'invite egalement à participer au wiki du projet Extensions sur la 
partie C++ afin de permettre à de nouveaux arrivants de debuter


Je suis un programmeur amateur qui a besoin de beaucoup d'aide
et n'en a guère à apporter. Mais je vais peut-être saisir l'occasion 
qu'offre

OpenOffice d'apprendre Python ou Java.


merci pour tes remarques


Encore merci pour la réponse.

A.





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Pourquoi un Basic ?

2006-05-16 Par sujet Bernard Marcelly

Bonjour Adrien Delcour
Message du 2006-05-16 12:06:


Il ne me semble donc pas plus facile de programmer en Basic qu'en C++, par 
exemple,
je dirais même que c'est le contraire.

Je me demande donc quel est l'avantage du Basic.



Tes remarques sur les limitations du langage Basic sont tout à fait 
valables, mais secondaires du point de vue scripting. Il est évident 
qu'un langage intégré dans une application ne peut avoir toutes les 
possibilités d'un langage de programmation professionnelle nécessitant 
une compilation.
Pour programmer OpenOffice la difficulté est d'utiliser l'API 
d'OpenOffice. Et là, Basic offre nombre de facilités, et un 
environnement de développement intégré, ce qui fait gagner un temps 
considérable. En comparaison, la mise en oeuvre avec C++ (ou Java) est 
bien plus complexe et hors de portée d'un programmeur occasionnel.

Pour te faire une idée, voir les documents:

l'API d'OOo (presque) sans peine (qui utilise Basic) 
http://fr.openoffice.org/Documentation/How-to/Basic/OOo_API_intro-07.sxw


UNO/C++ By Serge Moutou http://perso.wanadoo.fr/moutou/UNOCpp_AP01.sxw 
(ce document est très long à ouvrir dans Writer)


et aussi, l'annexe A du livre Programmation OpenOffice.org 2 
http://www.eyrolles.com/Chapitres/9782212117639/Annexes_marcelly.pdf?xd=c377007ff1fbae60340676e7e601c7a9



   Bernard

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[prog] Stocker une valeur dans l'environnement utilisateur

2006-05-16 Par sujet Philippe Allart

Bonjour,

Dans la lignée du fil sur la manière de conserver les paramètres d'une 
boîte de dialogue, je me demandais s'il existait une manière simple de 
stocker dans l'environnement utilisateur une information qui serait 
persistante d'une session à l'autre, accessible en lecture et en 
écriture par une macro.


J'ai bien pensé à faire une base de donnée. Mais s'il y une autre 
méthode, je suis preneur.


A+

Ph.

--
Philippe Allart
Chargé de mission TIC
Tel: 03 20 21 24 88
Fax: 03 20 21 24 99

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Stocker une valeur dans l'environnement utilisateur

2006-05-16 Par sujet serge . lelouarne
Selon Philippe Allart [EMAIL PROTECTED]:

 Bonjour,

 Dans la lignée du fil sur la manière de conserver les paramètres
 d'une
 boîte de dialogue, je me demandais s'il existait une manière simple
 de
 stocker dans l'environnement utilisateur une information qui serait
 persistante d'une session à l'autre, accessible en lecture et en
 écriture par une macro.

 J'ai bien pensé à faire une base de donnée. Mais s'il y une autre
 méthode, je suis preneur.

 A+

 Ph.

 --
 Philippe Allart
 Chargé de mission TIC
 Tel: 03 20 21 24 88
 Fax: 03 20 21 24 99


Bonjour,

Pour ma part je crée un fichier dans le repertoire de l'utilisateur
(variable HOME, voir dans getPathSubstitution dans le SDK, de
mémoire)

A+
Serge

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Stocker une valeur dans l'environnement utilisateur

2006-05-16 Par sujet Philippe Allart

[EMAIL PROTECTED] a écrit :


Bonjour,

Pour ma part je crée un fichier dans le repertoire de l'utilisateur
(variable HOME, voir dans getPathSubstitution dans le SDK, de
mémoire)


C'est un peu comme une BD.
Je posais la question après avoir navigué ici dans la doc sur l'API:
http://api.openoffice.org/docs/common/ref/com/sun/star/configuration/SetElement.html

On dirait qu'il y a presque ce qu'il faut, mais je n'y comprends pas 
grand chose.


Ph.


--
Philippe Allart
Chargé de mission TIC
Tel: 03 20 21 24 88
Fax: 03 20 21 24 99

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Stocker une valeur dans l'environnement utilisateur

2006-05-16 Par sujet serge . lelouarne
Selon Philippe Allart [EMAIL PROTECTED]:
[...]
 C'est un peu comme une BD.
 Je posais la question après avoir navigué ici dans la doc sur l'API:

http://api.openoffice.org/docs/common/ref/com/sun/star/configuration/SetElement.html

 On dirait qu'il y a presque ce qu'il faut, mais je n'y comprends pas
 grand chose.

 Ph.


 --
 Philippe Allart
 Chargé de mission TIC
 Tel: 03 20 21 24 88
 Fax: 03 20 21 24 99

Je n'ai pas d'exemple avec moi, mais je peux en mettre un sur la liste
demain ...

A+
Serge

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Stocker une valeur dans l'environnement utilisateur

2006-05-16 Par sujet Philippe Allart

[EMAIL PROTECTED] a écrit :


Je n'ai pas d'exemple avec moi, mais je peux en mettre un sur la liste
demain ...


Je viens d'écrire un module de gestion des persistances basé sur un 
fichier texte et que je vais interconnecter à un gestion des boîtes de 
dialogue.


Dès que c'est au point, je peux mettre en ligne.

Il me manque juste une astuce pour récupérer la liste des controles 
contenus dans une boîte de dialogue, sans connaître leur nom...


Ph.


--
Philippe Allart
Chargé de mission TIC
Tel: 03 20 21 24 88
Fax: 03 20 21 24 99

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [prog] Stocker une valeur dans l'environnement utilisateur

2006-05-16 Par sujet gerard
Le Mardi 16 Mai 2006 14:21, Philippe Allart a écrit :
 Bonjour,
Bonjour,


 Dans la lignée du fil sur la manière de conserver les paramètres d'une
 boîte de dialogue, je me demandais s'il existait une manière simple de
 stocker dans l'environnement utilisateur une information qui serait
 persistante d'une session à l'autre, accessible en lecture et en
 écriture par une macro.

 J'ai bien pensé à faire une base de donnée. Mais s'il y une autre
 méthode, je suis preneur.
On peut utiliser l'API et le module registry.
Voici un extrait de code en python que j'utilise pour CADOOo.
Je pense qu'il peut être adapté au BASIC.
# 
# acces aux registres
# 
self.aRegistry = 
self.ctx.ServiceManager.createInstanceWithContext(com.sun.star.registry.SimpleRegistry,
 
self.ctx)
sFile = ./cadooo.rdb
aURL = unohelper.systemPathToFileUrl(sFile)
try:
self.aRegistry.open(aURL, False, False)
except InvalidRegistryException, e:
self.aRegistry.open(aURL, False, True)
aRootKey = self.aRegistry.getRootKey()
# Une liste de drapeau correspondant aux états des accrochages aux 
objets
self.aL2OStateKey = aRootKey.openKey(L2OSTATE)
if self.aL2OStateKey is None:
self.aL2OStateKey = aRootKey.createKey(L2OSTATE)
self.aL2OStateKey.setLongListValue(self.aValues['L2OSTATE'])
self.aValues['L2OSTATE'] = self.aL2OStateKey.getLongListValue()
# un entier reflétant l'état du mode axonométrique
self.aOrthomodeKey = aRootKey.openKey(ORTHOMODE)
if self.aOrthomodeKey is None:
self.aOrthomodeKey = aRootKey.createKey(ORTHOMODE)
self.aOrthomodeKey.setLongValue(self.aValues['ORTHOMODE'])
self.aValues['ORTHOMODE'] = self.aOrthomodeKey.getLongValue()

-- 
gérard

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]