Ca fait quelques temps déjà que je ne suis pas revenu sur le forum.
Je viens de reprendre la programmation purebasic pour un projet et j'avoue que je me retrouve très vite bloqué par des choses qui semble pourtant évidente.
Je m'explique, j'ai écris un script sous le langage Python3 et je voudrais ajouter un module écrit en PureBasic car je pensais qu'il m'apporterait un certaine souplesse. J'ai voulu créer une bibliothèque perso de la manière suivante :
Code : Tout sélectionner
;Includes
if OSVersion() > #PB_OS_Windows_XP
XIncludeFile "libs\request.pb"
else
XIncludeFile "libs/request.pb"
--> Résultat :
1/ OSVersion me renvoit sur la version Linux Ubuntu 12 --> que m'a plateforme est en fait un Windows 2000
2/ Peut importe la condition (j'ai même essayé d'utiliser l'adresse du répertoire de l'application et faire une recherche avec FindString pour détecter la présence d'un "/" ou "\"), cela à eu pour effet d'exécuter le XIncludeFile alors qu'il est inclut dans une condition IF.
Bon au final j'ai du utiliser ceci :
Code : Tout sélectionner
IncludePath "libs"
XIncludeFile "request.pb"
--> Perso je trouve pas ça génial si je dispose de sous-dossier car je devrait utiliser les "/" et les "\" et je suis de nouveau dans la panade

Bon à la limite il y a une solution je ferais avec c'est pas la fin du monde.
Maintenant mon autre problème que je trouve obérant s'il n'existe pas d'alternative : les ProcédureReturn
- Ce qu'il faut savoir c'est que j'ai une base de données SQLite dans laquelle je dois interroger. Pour ça je voulais créer une liste d'élément dans ma librairie "keys.pb" puis pour éviter du code superflu et inutile, je ferais appel à ces infos là quand il me serait nécessaires. Voilà mon code actuel :
Code : Tout sélectionner
Procedure InformationDescriptionKeys():
NewList elements.s()
AddElement(elements())
elements() = "num_description"
AddElement(elements())
elements() = "language"
AddElement(elements())
elements() = "version"
AddElement(elements())
elements() = "content_new"
AddElement(elements())
elements() = "content_alert"
AddElement(elements())
elements() = "content_modify"
AddElement(elements())
elements() = "global_title"
AddElement(elements())
elements() = "new_title"
AddElement(elements())
elements() = "modify_title"
AddElement(elements())
elements() = "alert_title"
AddElement(elements())
elements() = "poids"
ProcedureReturn elements()
EndProcedure
--> Et là j'hallucine lorsque je lis dans la doc qu'il n'est pas possible de renvoyer une liste, un tableau ou une map dans une procédure. Et là je trouve ça beaucoup plus grave. Donc je me dis que j'ai sûrement un moyen autre pour me permettre de faire ça ... n'importe quel langage est normalement sensé renvoyer une liste, un tableau ... Je ne vois que ça, j'ai raté quelques chose c'est sûr ...mais quoi ?
J'ai feuilleté les exemples et bien entendu aucun ne traite de liste/chaines. Sur le forum j'ai pas trouvé mon bonheur non plus.
C'est pour cette raison que je viens demander conseil à des personnes plus expérimentés que moi.
Une personne aurait-il l'amabilité de m'aider sur ce problème s'il vous plait ?
Je vous en remercie d'avance.
Cordialement,
Tinangel.
edit
Je suis un gros boulet la solution est là --> http://www.purebasic.com/french/documen ... hared.html
merci quand même
/edit