Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Control sur le chemin et nom de fichier

15 réponses
Avatar
SuperGolgoth
Bonjour,
j'ai un form (en VB6) dans lequel l'utilisateur doit donner le chemin
et le nom d'un fichier a créer
Mais je ne vois pas comment controler que la saisie est correcte
(eviter les caractères bizarres ou autre mauvaise manip)
Controler que le fichier est 'créable' si on peut dire
L'ideal serait d'inserer un control type explorer mais je ne le trouve
pas ...
Merci de votre aide

5 réponses

1 2
Avatar
SuperGolgoth
Merci de ces reponses, mais il n'existe pas une fonction dans un
'component' qui permet d'afficher un truc du genre 'fichier/ouvrir' ou
'fichier/enregistrer sous' ...
Meme si je dois ajouter un bouton 'parcourir' et juste afficher dans un
label le chemin et le nom du fichier ...


LE TROLL a utilisé son clavier pour écrire :
Bonjour :o)

C'est sans doute une question : "d'intelligence", comme ils disaient du
temps de feu l'Eempereur, davantage qu'une question de code prévu à cet
effet, enfin, je crois...

Déjà on peut en effet faire certains contrôles durant la saisie ou à la
validation.

Exemple :
- Qu'au début ça commence pas "U"
- Que le fichier est une longueur 2_à_8.3
- Que l'extension ne soit pas celle déjà normalisée pour un type de fichier
(voire à l'imposer)
- Qu'il n'y ait pas deux "" qui se suivent
- Que la profondeur ne dépasse par 6 niveau par exemple ""
- Que la longueur de la chaîne ne dépasse pas x caractères, et n'admettre
que (majuscules et minuscules), que de "a à z, espace, _".

En dernier, ou tout simplement, tu peux directement créer et supprimer
le fichier avec son chemin, et si jamais ce n'est pas conforme ça va
renvoyer un erreur, tu récupères, puis refuse la saisie...

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"SuperGolgoth" a écrit dans le message de news:

Bonjour,
j'ai un form (en VB6) dans lequel l'utilisateur doit donner le chemin
et le nom d'un fichier a créer
Mais je ne vois pas comment controler que la saisie est correcte
(eviter les caractères bizarres ou autre mauvaise manip)
Controler que le fichier est 'créable' si on peut dire
L'ideal serait d'inserer un control type explorer mais je ne le trouve
pas ...
Merci de votre aide






Avatar
LE TROLL
Bonjour,

Certains objets ou fonctions permettent un choix plus facile et qui
s'affiche :

- Les objets : drive + dir + file (listBox)

- L'API GetOpenFileName

C'est toi qui semblait vouloir faire tout en code, effectivement, avec
un objet et son paramétrage ça simplifie la vie :o)

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"SuperGolgoth" a écrit dans le message de news:

| Merci de ces reponses, mais il n'existe pas une fonction dans un
| 'component' qui permet d'afficher un truc du genre 'fichier/ouvrir' ou
| 'fichier/enregistrer sous' ...
| Meme si je dois ajouter un bouton 'parcourir' et juste afficher dans un
| label le chemin et le nom du fichier ...
|
|
| LE TROLL a utilisé son clavier pour écrire :
| > Bonjour :o)
| >
| > C'est sans doute une question : "d'intelligence", comme ils disaient
du
| > temps de feu l'Eempereur, davantage qu'une question de code prévu à cet
| > effet, enfin, je crois...
| >
| > Déjà on peut en effet faire certains contrôles durant la saisie ou à
la
| > validation.
| >
| > Exemple :
| > - Qu'au début ça commence pas "U"
| > - Que le fichier est une longueur 2_à_8.3
| > - Que l'extension ne soit pas celle déjà normalisée pour un type de
fichier
| > (voire à l'imposer)
| > - Qu'il n'y ait pas deux "" qui se suivent
| > - Que la profondeur ne dépasse par 6 niveau par exemple ""
| > - Que la longueur de la chaîne ne dépasse pas x caractères, et
n'admettre
| > que (majuscules et minuscules), que de "a à z, espace, _".
| >
| > En dernier, ou tout simplement, tu peux directement créer et
supprimer
| > le fichier avec son chemin, et si jamais ce n'est pas conforme ça va
| > renvoyer un erreur, tu récupères, puis refuse la saisie...
| >
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "SuperGolgoth" a écrit dans le message de news:
| >
| >> Bonjour,
| >> j'ai un form (en VB6) dans lequel l'utilisateur doit donner le chemin
| >> et le nom d'un fichier a créer
| >> Mais je ne vois pas comment controler que la saisie est correcte
| >> (eviter les caractères bizarres ou autre mauvaise manip)
| >> Controler que le fichier est 'créable' si on peut dire
| >> L'ideal serait d'inserer un control type explorer mais je ne le trouve
| >> pas ...
| >> Merci de votre aide
| >>
| >>
|
|
Avatar
Jacques93
Bonjour SuperGolgoth,
SuperGolgoth a écrit :
Merci de ces reponses, mais il n'existe pas une fonction dans un
'component' qui permet d'afficher un truc du genre 'fichier/ouvrir' ou
'fichier/enregistrer sous' ...
Meme si je dois ajouter un bouton 'parcourir' et juste afficher dans un
label le chemin et le nom du fichier ...




Oui il existe un 'composant' qui semble correspondre à ta demande (LE
TROLL n'aime pas les composants, c'est dans sa nature ;-) ) . Il s'agit
tout simplement du Microsoft Common Dialog, soit ComDlg32.ocx, à ajouter
donc dans les composants du projet. Voir les méthodes ShowOpen et
ShowSave, par ici :

<http://msdn.microsoft.com/en-us/library/aa259661(VS.60).aspx>

Comme tu le vois, il y en a 4 autres. Je déconseillerai toutefois la
méthode ShowHelp, qui, suite au changement de format des fichiers d'aide
de MS est quasiment obsolète, voire carrément morte.

--

Cordialement,

Jacques.
Avatar
Jacques93
Bonjour Gloops,
Gloops a écrit :
[Enregistrer un fichier après avoir contrôlé le chemin d'accès]

Bonjour,

Tu parles d'un contrôle de type explorer, maintenant il reste à bien se
représenter ce que tu veux en faire.

Si c'est pour créer un fichier, la boîte de dialogue GetSaveFileName
devrait bien aider, la page indiquée par Jean-Marc donne des liens vers
des versions détaillées avec divers raffinements.



J'ai du la louper, dommage ! j'aime bien les raffinements :-)


Au moins tu es assuré de créer le fichier dans un répertoire existant.
Après, il y a certes un travail intéressant à faire sur la gestion
d'erreurs.

Si Jacques ne veut pas de gestion d'erreurs probablement il préférera
sélectionner le répertoire avec BrowseForFolder, et utiliser les
fonctions qu'il indique pour contrôler les caractères du nom de fichier
(après, j'imagine, une saisie par InputBox). J'ai l'impression que
j'aurais tendance à conseiller d'en venir là dans un deuxième temps,
après s'être un peu frotté à GetSaveFileName. D'autant qu'ainsi qu'il le
souligne il ne faut pas omettre de vérifier les droits : là je sens
qu'on va ouvrir un sous-fil, la première idée qui me vient à l'esprit
est de me tourner vers FileSystemObject, mais je n'ai pas vérifié si
c'est une bonne idée. En tout état de cause je n'ai fait qu'évoquer
l'idée, il reste à "se taper le boulot" ;)




Ah ben la, non, tu m'as mal compris, ou je me suis mal exprimé, ou
l'inverse. Je n'ai rien contre la gestion d'erreur, au contraire. Mais
pour ce qui me concerne, ce n'est pas la première étape. J'ai appris sur
le tas, il y a longtemps, qu'en informatique il fallait tout prévoir :

- Panne matérielle
- OS instable
- Souris déglinguée

<http://fr.wikipedia.org/wiki/La_Souris_d%C3%A9glingu%C3%A9e)>

- Utilisateur mal formé au produit
etc ... (cherchez l'intrus)

Et le pire de tout : Données invalides, il faut donc tout prévoir !

Mais si au départ l'algorithme n'est pas bon, cela ne sert à rien de
blinder une passoire, ce fut testé comme ici :

<http://fr.wikipedia.org/wiki/Ligne_Maginot>

C'est une fois le bon code mis en place, qu'on y ajoute la gestion
d'erreur (dans d'autres langages, la démarche peut être différente)


--

Cordialement,

Jacques.
Avatar
Gloops
Jacques93 a écrit, le 19/09/2008 18:59 :
Ah ben la, non, tu m'as mal compris, ou je me suis mal exprimé, ou
l'inverse.



:)

Nous sommes bien d'accord avec tout ce que tu dis après.

Maintenant, comme j'évoquais juste l'appel à OpenFileName, je me suis
dit qu'après tout, c'était défendable de le fournir tel quel, et
d'ailleurs tu as bien proposé aussi les boîtes de dialogues communes.

Il y a deux manières de les appeler, par un contrôle ou par les API.
C'est vrai que dans une visée d'initiation, si l'utilisateur a le
composant bien installé sur sa machine, probablement tu défends mieux
l'aspect simplicité de mise en place.

J'ai avancé la solution API parce que justement, il m'est arrivé de
rencontrer le cas où le composant n'était pas bien installé, ou ne
reconnaissait pas bien une application développée sur une autre machi ne.
On pourrait plus ou moins classer ça pas très loin du problème sour is
déglinguée ;) Quoique ... Il m'est arrivé de voir de près ce que ça peut
donner, c'est vrai que ça ne ressemble pas vraiment.

De toute manière, je commence à ne plus être bien sûr que SuperGo lGoth
nous départagera ...

Dommage, on aurait pu envisager les différents cas d'erreur, et imagine r
comment on pourrait les intégrer proprement à la fonction de choix du
fichier.

Bon, j'avoue que le coup de la souris déglinguée, je le garderais bie n
pour la fin ;)

Je n'ai rien contre la gestion d'erreur, au contraire. Mais
pour ce qui me concerne, ce n'est pas la première étape. J'ai appri s sur
le tas, il y a longtemps, qu'en informatique il fallait tout prévoir :

- Panne matérielle
- OS instable
- Souris déglinguée

<http://fr.wikipedia.org/wiki/La_Souris_d%C3%A9glingu%C3%A9e)>

- Utilisateur mal formé au produit
etc ... (cherchez l'intrus)

Et le pire de tout : Données invalides, il faut donc tout prévoir !

Mais si au départ l'algorithme n'est pas bon, cela ne sert à rien d e
blinder une passoire, ce fut testé comme ici :

<http://fr.wikipedia.org/wiki/Ligne_Maginot>

C'est une fois le bon code mis en place, qu'on y ajoute la gestion
d'erreur (dans d'autres langages, la démarche peut être différent e)




1 2