Pour avoir l'aide intégrée dans giac

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

cdeval
Messages : 192
Inscription : mer. juin 03, 2009 4:28 pm

Pour avoir l'aide intégrée dans giac

Message par cdeval » ven. mai 21, 2010 10:10 pm

Salut,
en bossant sur la compil mac, je me suis rendu compte que je n'avais pas l'aide sur les commandes (? command) dans OOo. Pourtant j'étais persuadé que j'avais utilisé "? commande" dans OOo et que ça marchait. En vérifiant ce soir, je n'ai aucune aide ni dans OOo-mac, ni dans OOo-linux....
J'ai essayé de créer
./doc/fr/aide_cas
à côté de ma librairie mais ça ne marche pas. Y a-t-il une instruction à lancer pour charger l'aide dans un programme utilisant giac ?
A+

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Pour avoir l'aide intégrée dans giac

Message par parisse » sam. mai 22, 2010 6:05 am

Il n'y a pas d'instructions xcas, mais il faut que tu initialises l'aide en C++
doc_prefix=giac::read_env(giac::context0); // Set giac::language and modes from environment
xcas::read_aide("aide_cas",giac::language(giac::context0));
giac::set_language(giac::language(giac::context0),giac::context0);

read_aide est dans la libxcas, ca risque de te compliquer la vie, peut-etre que tu peux le copier avec ses dépendances depuis Input.cc

cdeval
Messages : 192
Inscription : mer. juin 03, 2009 4:28 pm

Re: Pour avoir l'aide intégrée dans giac

Message par cdeval » sam. mai 22, 2010 8:42 pm

C'est bon, j'ai intégré l'aide dans mon extension.
Comme tu l'as suggéré, j'ai repris le code de include.cc en me limitant au strict minimum.

Code : Tout sélectionner

	if (!helpitems){
		OUString chemin;
		aValList[0] >>= chemin;		
		std::string helpfile=string(OUStringToOString(chemin,RTL_TEXTENCODING_UTF8));
		(*giac::vector_aide_ptr)=giac::readhelp(helpfile.c_str(),helpitems);
	}
	Retour=OUString::createFromAscii("Nombre d'aide : ")+OUString::valueOf(helpitems);
je n'ai pas besoin de tester si le fichier cas_aide est présent car il l'est forcément : je l'ai mis dans l'extension, accessible aux librairies de toutes les plateformes.
Je passe ensuite par OOoBasic pour transmettre à ma fonction c++ le chemin d'accès du fichier dans l'extension.
Tout marche au poil :
screenshot_148.png
screenshot_148.png (76.11 Kio) Consulté 3208 fois
Merci encore, A+

Répondre