rebol compilé, répertoire d'exécution
jocko14-Mar-2013/18:37:15+1:00
J'ai un problème étrange : je compile (sous windows) un script avec rebol-sdk-278, et j'observe que le répertoire d'exécution (trouvé avec what-dir, ou avec system/script/path) n'est pas le même selon que je passe ou non un argument à l'exe :
- sans argument, le répertoire d'exécution est le répertoire où se trouve l'exécutable
- avec argument, c'est le répertoire de l'utilisateur courant (donné par get-env "USERPROFILE")

C'est assez gênant, ne serait-ce que pour lire un autre fichier dans le même répertoire que l'exe. Comment y remédier ?
jocko15-Mar-2013/9:43:11+1:00
Bon, on dirait qu'il y a peu d'utilisateurs du sdk sous windows...

Je viens de trouver une réponse ... mais pas de solution, dans la doc du sdk (http://www.rebol.com/docs/sdk/encap.html) :

Run-Time Problems
1. Under Windows, when dragging and dropping an icon onto an encapped program, the current directory for the program gets reset to . A good solution is to change-dir to the path of the argument (change-dir first split-path file).

Ce n'est pas une solution pour mon application. En tout cas, le problème est connu.
PierreCh18-Mar-2013/11:39:06+1:00
J'ai eu un souci un petit peu du même genre, mais avec REBOL/View 2.7.8.4.2 2-Jan-2011

Je bricole un script qui me satisfait; je le place dans mon ~/bin (je suis sous GNU/Linux) qui est dans mon PATH.

Je fais tourner mon script depuis un autre répertoire. Il doit ouvrir un fichier présent dans le répertoire courant, qui s'appelle geolpda_picks.csv, ceci se fait par la ligne suivante:
lines: read/lines %geolpda_picks.csv


Et là, il me répond que:
** Access Error: Cannot open /home/pierre/bin/geolpda_picks.csv
** Near: lines: read/lines %geolpda_picks.csv 


Flûte. De toute évidence, il considère le répertoire où est le script comme répertoire de travail.

J'ai contourné la chose en faisant un symlink de mon script dans le répertoire de travail, et en l'appelant de là. C'est très loin d'être optimal, mais ça marche...


Puis, après l'urgence du contrat à finir, j'ai réfléchi un poil, et j'ai mis dans le script, pour lire le fichier:
lines: read/lines rejoin [system/options/path %geolpda_picks.csv]


Là, ça va, c'est mieux. Mais c'est un peu lourdingue, d'avoir à faire ça à chaque coup, non?


Quelqu'un aurait une idée de ce comportement un peu étrange? Nos soucis seraient-ils liés?

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2