Les articles ci-dessous ont été récupérés du(des) sites de Tanguy Pruvot (tanguy.fr.to, tanguy.wdscript.fr, wdscript.sourceforge.net et tanguy.ath.cx) qui ont disparu d’internet. Merci à son auteur pour ses contributions intéressantes !
M.Pruvot est l’auteur (principal ?) d’un projet qui permet de programmer en WinDev (oui vous avez bien lu WinDev) dans des pages PHP. Pour cela, il est nécessaire de paramétrer un serveur Apache et passer par le CGI pour exécuter le code mis dans des balises spéciales. Pour simplifier la configuration du serveur, l’auteur a mis à disposition le EWS (Easy Web Serveur) dans lequel tout est intégré. Il s’installe facilement et a une interface utilisateur pour le paramétrer.
Ce projet est toujours disponible dans sa version 3.2.0 sur SourceForge.
M.Pruvot a donc compilé, dans les fichiers suivants, les mots clés et autres constantes du WLangage sur plusieurs versions afin que le WLangage puisse être correctement affiché sur les sites internet et dans les éditeurs de textes (NotePad++, UltraEdit et SublimeText). Ces fichiers contiennent aussi le mots clés et constantes de WDScript (voir ci-dessus)
Plugin pour SublimeText (Wx19) (à décompresser dans %APPDATA%\Sublime Text 3\Packages)
Plugin pour NotePad++ (Wx19)
Pour PHP, veuillez vous reporter à la documentation du module de votre site qui supporte GeSHi. Le fichier windev.php est à placer dans le même répertoire que les autres langages.
Plugin pour UltraEdit (Wx15)
Exemple 1 :
oGD est un cGD //Taille de l'image im est entier = oGD:gdImageCreate(300,200) //Couleurs utilisées (noir et blanc ici) clBlack est entier = oGD:gdImageColorAllocate(im,0,0,0) clWhite est entier = oGD:gdImageColorAllocate(im,0xFF,0xFF,0xFF) oGD:gdImageRectangle(im,0,0,299,189,clWhite) s est chaîne = "Test Lib GD "+cGD::GD_VERSION_STRING //Centrage du texte oGD:gdImageString(im, oGD:gdFontLarge(), 150 - ((Taille(s)-1)*oGD:fontLarge:w / 2), 2, s, clWhite) //Enregistrement de l'image f est entier = oGD:fopen("test.png","wb") oGD:gdImagePng(im,f) oGD:fclose(f) oGD:gdImageDestroy(im) //Affichage dans un champ image Image1="test.png"
A noter que l’extension GD fournie dans PHP (voir documentation) est légèrement différente de la librairie d’origine. La future version 2.1 de LibGD est censée regrouper ces deux versions.
Quelques fonctions spéciales pour windev seront ajoutées telles que oGD:ImageEnregistre(im, sFichier) qui détermine le format de sortie en fonction de l’extension du fichier fourni… ou encore oGD:CouleurWD(im, iBlanc) pour utiliser les constantes windev…
Exemple 2, conversion gif vers PNG
//Taille de l'image im est entier = oGD:ImageOuvre("test.gif") oGD:ImageEnregistre(im,"test.png") oGD:gdImageDestroy(im) //Affichage dans un champ image Image1="test.png"
La fonction JSON() utilise la Serialisation Binaire (sans utilisation de XML donc, ce qui est 10 fois plus rapide) mais a l’inconvénient d’être très complexe (procédure récursive). La classe JSON est téléchargeable ici.
S est une chaine = JSON(myVar)
Note: JSON est maintenant supporté en natif dans Windev depuis la v19 (voir Sérialise/Désérialise). Néanmoins, celle ci est encore très limitée, il manque le type le plus courant (en PHP) :
Erreur 2612 (Sérialise) : La sérialisation JSON n’autorise pas les éléments de type ‘table au associatif’.
Exemple qui affiche la seconde colonne d’un fichier CSV :
oTxt est un cTXT oTxt:sSeparatorX = ";" oTxt:bCSVQuotes = Vrai oTxt:Parse(fChargeTexte(sFichierCSV)) oTxt:Premier() TANTQUE PAS oTxt:Endehors Trace(oTxt:ColOf(2)) oTxt:Suivant() FIN
Les interfaces suivantes sont implémentées :
Fichier Texte : Entrée et Sortie + Sortie vers Fichier délimité (:TxtVersFormatSpec)
Fichier CSV : Entrée
Fichier Excel : Sortie
Fichier INI : Entrée et Sortie
Zone mémoire : Entrée et Sortie
Registre : Entrée
Listing de Répertoire : Entrée
Table Mémoire : Entrée et Sortie
Arbre : Sortie
Autres possibilités :
Substitut de tableau associatif : SetKeyValue/GetKeyValue
Ajout/Insersion de colonnes
Recherche mono ou multicolonne
Tri (par fonction TableauTrie ou manuel, avec paramètres spéciaux)
Suppression de doublons
Gestion d’entête de colonne
Gestion de Mémos associés à une ligne ou a une cellule
oUPNP est un cUPNP("192.168.0.1",5678) oUPNP:OuvrePort("192.168.0.3",1234,"TCP")
WDHex est téléchargeable ici. La classe cExportWD est téléchargeable ici.
wlscript 1.3.x86 VM11.00Qd Usage: Fonction globale : wlscript -f [ ...] Classe : wlscript -c [ ...] Fichier source : wlscript -s Code direct : wlscript -d <code> </code>
Attention :
En mode Sou rce : la fonction Compile ne fonctionne pas bien pour le moment sous Linux
En mode direct : Les caractères ( ) et » doivent etre précédés par un antislash \ sinon ils sont interprétés par le bash
Classe exemple :
root@ubuntu:/usr/share/wlscript# ./wlscript -c wltest11.wdl cTest Execute test Parametre fourni :test Répertoire en cours :/usr/share/wlscript Variable d'environnement PATH :/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games root@ubuntu:/usr/share/wlscript#
Vous pouvez dans votre code utiliser la fonction globale ENV(param) pour obtenir une variable d’environnement linux.
Vous pouvez aussi utiliser les fonctions stdout(sTexte) stderr(sTexte) et sMaVariable=scanf()
Code source de la méthode :
PROCEDURE Execute(sParametre est une chaîne="") sRes est chaîne :sRepEnCours=fRepEnCours() sRes+="Parametre fourni :"+sParametre+RC sRes+="Répertoire en cours :"+:sRepEnCours+RC sRes+="Variable d'environnement PATH :"+ENV("PATH")+RC sRes+="Commande executée :"+ENV("_")+RC+RC //pour debugger: //stdout("blablabla") RENVOYER sRes
Installation :
Copiez les fichiers (ainsi que les DLL du framework linux) dans un nouveau répertoire /usr/share/wlscript
cd /usr/share/wlscript chmod +x wlscript
Test :
cd /usr/share/wlscript ./wlscript -s test.wl
Note :
N’oublie z pas les DLL du framework Linux nécessaires (au minimum VM CPL HF et STD)
Il faut aussi vérifier que vous avez installé la version de stdlibc nécessaire a tous les produits PCSoft.
Sur Debian/Ubuntu :
apt-get install libstdc++2.10-glibc2.2
(ou pour obtenir le nom du package : apt-file search libstdc++-libc6.2-2.so.3 puis apt-get install nom du package)
Sur Fedora Core :
pour obtenir le nom du package : yum search compat-libstd puis yum install nom du package
La classe et le projet exemple sont téléchargeables ici.
Ce petit utilitaire permet simplement de réactiver la console des exécutables de WinDev 15+ (et les exécutable .NET). Il se nomme WDGUI2CON, nécessite les librairies WD150VM.DLL et WD150OBJ.DLL, et s’utilise lui aussi en ligne de commande :
Usage: wdgui2con reset: wdgui2con /reset
Une fois patché, il est à nouveau possible d’écrire sur la console (cmd.exe), de cette façon :
SI LigneCommande(1) ~= "/version" ALORS dbgSortieStandard(ExeInfo(exeDescription)) FIN
résultat (exemple)
C:\Mes Projets\WDSCRIPT15\Exe>wdscript /version WDSCRIPT 2.5.9 15 - Moteur Windev 01A15061n x86 C:\Mes Projets\WDSCRIPT15\Exe>