Gambas France BETA


Pas de compte ? Incription

A propos de dirChooser

Ce sujet est résolu.

1
AuteurMessages
Foromus#1 Posté le 10/8/2014 à 09:21:23
Bonjour à tous,

Par sa propriété "value", dirchooser me donne le chemin du dossier cliqué : c'est bien, mais insuffisant.
Je souhaiterais également récupérer le répertoire seul, dans deux variables différentes, exemple :

CheminEntier = "/home/applis/appli1/" 'ce que me donnne value
ET, en même temps
NomRepertoire = "appli1" 'ce que je ne sais pas trouver

Evidemment, il y a toujours moyen de triturer la chaîne pour arriver à extraire le dernier morceau à droite, cela dit, comme les noms n'ont pas forcement la même longueur, ça complique la chose. Alors, et si il y avait un moyen simple....

Et tout naturellement, je souhaite aussi la même chose avec l'autre,

En regardant sur le forum, j'ai trouvé une formule de Manu (pour les fichiers, mais ça doit être pareil pour les répertoires) :

DIM fichiers AS Stringfichiers = ("/home/manu/essais.txt")Message.Info(File.Name(fichiers))

Bon, c'est bien, mais je colle ça où ? Dans la procédure Public sub filechooser_keypress ?
Après tout, je me dis que si je place Dim...... en début, c'est vrai qu'il "sera vu" après le clic sur le répertoire ou fichier considéré...

Merci de votre aide !
Reivillo#2 Posté le 10/8/2014 à 20:42:39
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonsoir Foromus.

Une Idée en passant par Là...
1
2
3
4
5
6
7
8
9
10
PUBLIC $sPathDir AS String[]
PUBLIC SUB DirChooser1_Change()

$sPathDir = Split(LAST.Value, "/")
LAST.Tag = $sPathDir[$sPathDir.Max]
PRINT Chr$(12); "PathDir: "; LAST.Value
PRINT "SiteDir: "; Replace$(LAST.Value, LAST.Tag, "")
PRINT "NameDir: "; LAST.Tag

END
Reivillo.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Reivillo#3 Posté le 11/8/2014 à 11:28:59
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Alors Foromus! Tu as trouvé ton Bonheur?
Maintenant, un ch'tit Retour(Positif || Négatif), et autre Résolu s'rait Sympa...
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Foromus#4 Posté le 11/8/2014 à 12:05:05
Bonjour Revillo,

Ben oui, je sais, mais notez quand même que je ne suis pas du genre à ne pas remercier le service !

Blague à part, effectivement, j'ai commencé à trouver un début de solution, en fait, je testais avant de répondre. Et vu que j'ai d'autres trucs qui coincent en même temps, ça me prend pas mal de temps...
Avant d'aller plus loin, j'aimerais bien trouver un site qui donne les tenants et les aboutissants de tous les contrôles, il me semble que ça existait, et de ce qui me reste comme URL, c'est assez rudimentaire. Pour le Wiki, ça ne semble pas marcher chez moi.

Et en plus de ça, il y a des choses qui changent : sur d'autres projets, j'utilisais la combobox, là, je ne la retrouve plus, à la place, j'ai la listbox, et je dois, à ma grande honte, avouer que je ne sais pas trop m'en servir...
Pour ce cas précis, je cherche à afficher des listes de chemins, et le nom du répertoire ou fichier qui les termine. Or, ma liste ne doit pas être modifiable par l'utilisateur, seulement pas le code. Et en plus, j'ai besoin qu'elle soit lue par un clic sur l'un quelconque de ses éléments...
Il me semble que la combo faisait tout ça, il est vrai que ça fait un moment que je ne me suis pas servi de tout ça, et entre-deux, j'ai un peu dormi...

Si vous le permettez, j'attends encore un peu pour le [Résolu] !

Merci pour le tuyau, j'ai quand même avancé !

Après quelques essais (fructueux...) :
Il semblerait que la listbox réponde tout à fait à mon attente. Reste à voir comment je vais traiter tout ça avec mes données.
Pour l'heure, je poursuis mes investigations ! Mais les auspices semblent favorables...
Reivillo#5 Posté le 11/8/2014 à 14:06:50
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Merci, et bon courage.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Foromus#6 Posté le 11/8/2014 à 20:58:24
Bonsoir,

Après avoir un peu récupéré de ce que je savais autrefois, je considère que la parenthèse listbox est refermée.
Pour revenir à dirChooser, point de départ, il me semble qu'il ne fait pas grande différence avec fileChosser : en clair, on peut pratiquement paramétrer pareil.
Concernant fileChooser justement, ça m'ennuie un peu, il n'y a pas moyen de paramétrer la "présentation". Ainsi, j'ai ce foutu volet, à droite, là où sont affichés les fichiers, c'est bien, mais c'est un peu gênant, ceci dit, où les mettre ? Le plus ennuyeux, c'est que si je peux redimensionner ce volet, le problème, c'est que ça ne tient pas, et qu'il faut le faire à chaque lancement. Mon contrôle est assez étroit (j'en ai aussi d'autres à mettre sur la feuille), et du coup, l'arborescence est quasiment toute occultée. C'est un peu dommage comme comportement parce que, logiquement, il faut déjà chercher dans les dossiers, avant de trouver les fichiers. Si ce n'est pas modifiable, "on va faire avec"...
J'aurais bien aimé aussi que ce contrôle soit muet avant de s'en servir, traduction : au lancement, il considère que /home est cliqué d'office, j'aurais nettement préféré qu'il attendît que je cliquasse moi-même...
Pour la formule magique qui donne le dernier terme du chemin, je me suis contenté de recopier bêtement (avec mes variables quand même - faut pas déconner...), et ça marche comme ça, mais j'avoue que je n'aurais jamais trouvé un truc pareil, d'autant que j'ai eu l'impression que ça ne fonctionnait qu'avec une variable locale, avec une publique, ça coinçait sérieusement.
Bon, je devrais pouvoir aboutir avec de que j'ai, je vais voir dans les prochains jours, j'en ai encore beaucoup à faire.

En tous les cas, soyez assuré de mes remerciements les plus sincères, sans aide, je butais irrémédiablement et définitivement...

linuxos#7 Posté le 11/8/2014 à 21:10:07
Un peu de sel, de poivre et la crevette sera... Bonjour,

Il me semble que c'est bien compliqué tout ça pour faire ce que tu veux, si je peux me permettre. Si j'ai bien compris ton besoin, tu souhaites proposer a l'utilisateur une liste de chemin (de répertoires ou fichiers, je ne sais pas bien) et lui donner la possibilité de pouvoir cliquer sur celui qu'il souhaite.
En retour tu souhaites récupérer le chemin et le nom du fichier dans 2 variables séparées ?

Est ce bien cela que tu souhaites faire ?

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
Foromus#8 Posté le 12/8/2014 à 09:26:09
Bonjour à tous,

Oh, ce n'est pas si compliqué en fait...
Effectivement, je cherche à récupérer des chemins, soit de répertoires, soit de fichiers (les répertoires ayant des fichiers, sinon pas la peine), et en même temps, le terme final, soit le nom du répertoire final dans le premier cas, soit le nom du fichier dans le second cas. Mais avec la formule magique de Reivillo, j'arrive au résultat souhaité ! Formidable !
Concernant les contrôles "chooser", peut-être que j’ergote un peu, je trouve dommage qu'il mette d'emblée le /home sélectionné. Pourquoi ? Simplement parce que, après acceptation du choix, j’inhibe le chooser, de manière à ne pas cliquer deux fois de suite et prendre deux fois le même. Ensuite, quand le choix est enregistré, je le remets actif pour une autre saisie. A noter aussi qu'après chaque choix, je vérifie un éventuel doublon, auquel cas, je bloque la validation. Il n'y a donc rien de compliqué là-dedans ! Autre solution : inhiber au départ le bouton de validation avec un léger retard via un timer... A étudier donc...

Après pour les tailles, je vais voir une autre approche, genre diminution des affichages et mise en loupe de l'affichage sélectionné.
L'affichage un peu réduit pose problème de visibilité, je n'ai plus mes yeux de 20 ans, et déjà à l'époque, ils n'étaient pas vraiment performants. Bah, il faut faire avec ce que l'on a, n'est-ce pas ?...
Foromus#9 Posté le 14/8/2014 à 08:46:26
Bonjour à tous,

Concernant l'objet de ma demande, je considère comme résolu.
Je poste donc un nouveau sujet.

Merci à tous !

A la réflexion, j'ajoute ce supplément :
Comme au lancement, le dirChooser me sort systématiquement le /home, j'ai contourné autrement.
J'ai mis un autre dirChooser non visible, et je prends la value, au lancement de l'application. Ensuite, je l'inhibe, puisque je n'en ai plus besoin.
Ceci à l'inconvénient (mais pas pour moi...), de ne pas pouvoir sélectionner le /home/moi.
Jack#10 Posté le 14/8/2014 à 11:51:04
Salut,

t'as essayé de mettre ?
Dialog.Path = Monrepertoire
Pour un code démocratique nationalisons Gambas.
Foromus#11 Posté le 14/8/2014 à 13:49:06
Bonjour,

Ben non, j'ai pas essayé, d'abord, parce que je ne connais pas, ensuite, je ne vois pas trop comment ça va me servir.
Je vais essayer de trouver quelque chose avec ça...
linuxos#12 Posté le 14/8/2014 à 14:32:03
Un peu de sel, de poivre et la crevette sera... Bonjour Foromus,

En règle générale, lorsque tu utilises un objet (ou commande gambas), n'hésite pas a aller dans la documentation et voir toutes les options qui lui sont associées.
Cela pourra t'aider grandement lors de tes développements futurs.

De manière simple, dans ton éditeur de gambas, si au préalable tu as créer dans un Formulaire un DirChooser nommé DirCHooser1, tu peux taper DirChooser1 puis ajouter un '.' et automatiquement Gambas tu montrera toutes les options et méthodes qui le concerne.

Voila.

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
Foromus#13 Posté le 14/8/2014 à 18:47:19
Bonjour Linuxos,

Ben oui, mais ça, j'utilise déjà à longueur de code...
A une époque, il y avait des descriptions de contrôles, méthodes, attributs, etc, et souvent accompagnées de quelques exemples. C'était bien pratique, je m'en suis beaucoup servi, mais je ne retrouve plus où c'est... Faudra que je recherche...
1