Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai une application développée en PB 11.5 qui utilise un .ini posé dans le répertoire où se trouve le .exe (cela fonctionne pas de problème)
Mon besoin est de déporter ce .ini sur un autre serveur et d'aller le lire.
Je pense qu'il faut lors de la compilation mettre l'adresse du .ini dans l'onglet 'run' --> 'arguments'
Et ensuite comment récupérer cet argument dans l'application ?
Dernière modification par devsud (23-02-2011 15:37:14)
Hors ligne
Bonjour, tu veux dire comment lire les infos du fichier INI dans l'appli PB ? Le cas échéant, utilise les fonctions ProfileInt et ProfileString.
Hors ligne
D'après ce que je comprends, ce dont tu as besoin c'est :
1/ d'exécuter l'application avec un paramètre dans la ligne de commande ;
2/ d'utiliser la fonction globale CommandParm().
Pour ce que j'en sais (je suis en version 10.5 qui ne propose pas cette fonctionnalité), la case "run / arguments" ne sert qu'à permettre de simuler des paramètres en ligne de commande dans le cas où on lance l'application via l'environnement de développement.
Hors ligne
Bonjour, si je comprend bien, tu voudrais indiquer à ton .exe un chemin pour qu'il sache ou chercher son .ini c'est çà ?
Quelques propositions:
* tu utilises la base de registre pour indiquer le chemin
* tu passe en ligne de commande le chemin (eg: ton.exe /ini=w:\sur_le_reseau) et tu récupéres l'infos via CommandParam(). pour tester depuis l'IDE, j'utilise cette bidouille dans l'even open de l'application :
if Handle(GetApplication()) = 0 then //ce code ne s'execute que depuis l'IDE commandline = "/ini=w:\chemin_ini" end if
* tu utilises un fichier .ini à côté du .exe qui contient une ligne pointant vers le .ini finale.
Hors ligne
Bonjour,
Merci Xlat, j'ai opté pour ta solution 2 (ligne de commande) qui fonctionne super bien (avec lecteur nommé (w:\...) ou partage chemin UNC (\\cheminappli\ini\xx.ini ))
// recuperation de l emplacement fichier ini ls_cmd = Trim(CommandParm()) //messagebox("ls_cmd de CommandParm 1 = ", ls_cmd) // Pour lancement de l'application en mode IDE (DEV) if Handle(GetApplication()) = 0 then //ce code ne s'execute que depuis l'IDE en test ls_cmd = "D:\DEV_PowerBuilder_11.5\application\V6.0\main\ajust32.ini" end if //messagebox("ls_cmd de CommandParm 2 = ", ls_cmd) // Lecture des parametres de l'applicatif g_ini.Mode = ProfileString(ls_cmd,"SGBD","Mode","") g_ini.ServerName = ProfileString(ls_cmd,"SGBD","ServerName","") ect....
Dernière modification par devsud (24-02-2011 07:33:19)
Hors ligne
Hors ligne