Dossiers dans une DirListBox [Résolu]

nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 13:23 - Dernière réponse : nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention
- 22 janv. 2007 à 23:09
hello,

J'ai une DrListBox nommé Dir1 qui contient plusieurs dossiers.
J'ai une FileListBox File1 qui affiche les fichiers d'un dossier sélectionné.
Chaque fichier est un document text correspondant à un enregistrement de richtextboxes indexées nommée Commande(0), Commande(1)....

2 Questions:
1/ Y a t'il un code qui permet d'enregistrer le NOM (et nom le chemin) du dossier sélectionné dans la DirListBox .
2/ Comment charger tous les fichiers du dossiers dans leur RichTextBox propre en cliquant justement sur le dossier et non sur le fichier ?

Explications:
Dans mon programme, chacune de mes RTB sont enregistrée de cette manière:
ex1: Commande(0).SaveFile "c:\DOSSIERS CLIENTS" & SauvegardeClient & "\TypeCommande " & SauvegardeClient & ".txt", rtfText
ex2: Commande(1).SaveFile "c:\DOSSIERS CLIENTS" & SauvegardeClient
& "\Adresse " & SauvegardeClient & ".txt", rtfText

SauvegardeClient est une variable qui concatenne 3 variables nom prénom et ddn du clients
Chaque dossier de ma >DirListBox sont enregistré au nom de SauvegardeClient
Mon souci est que lorsuqe le programme est fermé et que je le relance je voudrais pourvoir charger toutes mes RTBoxes en 1 fois en  utilisant loadfile. Pour cela, je pense qu' il faudrait que j'attribue à SauvegardeClient le nom du dossier sélectionné dans ma DirListBox pour uitiliser loadfil:
x1: Commande(0).LoadFile "c:\DOSSIERS CLIENTS" & SauvegardeClient
& "\TypeCommande " & SauvegardeClient & ".txt", rtfText

Si quelqu'un pouvait m'aider car CELA FAIT DES JOURS QUE JE CHERCHE UNE SOLUTION et je n'ai rien trouvé sur le site... Y a t'il une autre solution ????
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 janv. 2007 à 13:40
3
Merci
Ta question serait-elle tout simplement :

Comment sélectionner un dossier par le biais d'une dirlistbox et comment alimenter ensuite une RichTextBox par le nom de tous les ficheirs contenus dans ce dossier ?

Merci jmfmarques 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de jmfmarques
Meilleure réponse
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 janv. 2007 à 18:42
3
Merci
Je ne vois pas à quoi peut dans cette affaire te servir le NOM (sans son chemin) de ton dossier.

Je l'ai quand même extrait (nomrep) et il s'affiche dans une msgbox. Tu en feras ce que tu voudras...

voilà donc :

sur ta Form :
- 1 DrivelistBox
-1 dirlistbox
- 1 filelistbox

autant de RTB indexées que nécessaire, appelées RichtextBox1(0).... (n)


code


Private Sub Dir1_Change()
  File1.Path = Dir1.Path
End Sub


Private Sub Dir1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
  nomrep = Dir1.Path
  While InStr(nomrep, "") > 0
    nomrep = Mid(nomrep, InStr(nomrep, "") + 1)
  Wend
  MsgBox nomrep  ' je ne sais pas ce que tu comptes en faire, mais le voilà
  allons_y Dir1.Path & ""
End If


End Sub


Private Sub Drive1_Change()
  Dir1.Path = Drive1.Drive
End Sub


Private Sub allons_y(chemin As String)
  monfic = Dir(chemin & "*.txt", vbDirectory)   ' Retrieve the first entry.
  Dim nb As Integer
  Do While monfic <> ""
 
     Open chemin & monfic For Input As #1
       While Not EOF(1)
          Line Input #1, titi
          RichTextBox1(nb).Text = RichTextBox1(nb).Text & titi & vbCrLf
     Wend
     nb = nb + 1
     Close #1
     monfic = Dir
Loop


End Sub

Mode d'emploi : un double click gauche sur un dossier (et les fichiers déroulent)
un click droit sur un dossier (après déroulement) et tes RTB s'alimenteront

J'espère que le nombre de tes RTBs est suffisant (sinon.... index inexistant, bien sur, ... et erreur)


 

Merci jmfmarques 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de jmfmarques
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 13:23
0
Merci
hello,

J'ai une DrListBox nommé Dir1 qui contient plusieurs dossiers.
J'ai une FileListBox File1 qui affiche les fichiers d'un dossier sélectionné.
Chaque
fichier est un document text correspondant à un enregistrement de
richtextboxes indexées nommée Commande(0), Commande(1)....

2 Questions:
1/ Y a t'il un code qui permet d'enregistrer le NOM (et nom le chemin) du dossier sélectionné dans la DirListBox .

2/
Comment charger tous les fichiers du dossiers dans leur RichTextBox
propre en cliquant justement sur le dossier et non sur le fichier ?

Explications:
Dans mon programme, chacune de mes RTB sont enregistrée de cette manière:
ex1:
Commande(0).SaveFile "c:\DOSSIERS CLIENTS" & SauvegardeClient
& "\TypeCommande " & SauvegardeClient & ".txt", rtfText
ex2:
Commande(1).SaveFile "c:\DOSSIERS CLIENTS" & SauvegardeClient
& "\Adresse " & SauvegardeClient & ".txt", rtfText

SauvegardeClient est une variable qui concatenne 3 variables nom prénom et ddn du clients
Chaque dossier de ma >DirListBox sont enregistré au nom de SauvegardeClient
Mon
souci est que lorsuqe le programme est fermé et que je le relance je
voudrais pourvoir charger toutes mes RTBoxes en 1 fois en  utilisant
loadfile. Pour cela, je pense qu' il faudrait que j'attribue à
SauvegardeClient le nom du dossier sélectionné dans ma DirListBox pour
uitiliser loadfil:
x1: Commande(0).LoadFile "c:\DOSSIERS CLIENTS"
& SauvegardeClient & "\TypeCommande " & SauvegardeClient
& ".txt", rtfText

Si quelqu'un pouvait m'aider car CELA FAIT
DES JOURS QUE JE CHERCHE UNE SOLUTION et je n'ai rien trouvé sur le
site... Y a t'il une autre solution ????
Commenter la réponse de nono78220
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 13:53
0
Merci
oui je crois que c'est plus simple au cher jmfmarques.
Serais-tu mon sauveur ?

nono
Commenter la réponse de nono78220
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 janv. 2007 à 14:23
0
Merci
Peut-être....
Mais il me faut rechercher ce que j'ai écrit sur ce forum pour parvenir à choisir un dossier à l'aide d'une dirlistbox et d'un double-click
Il me semble que j'ai répondu il y a environ 20 jours...
Cherches également de ton côté ... on va retrouver... ou il me faudra réécrire (et je déteste)...
A +
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 janv. 2007 à 15:20
0
Merci
Hé Bé !
On ne peut pas dire que je suis content, là !!!

Je viens de passer plus de 45 minutes, sans succès, à rechercher une réponse que j'ai donnée moi-même et qui

- 1) traitait exactement ce que demande nono78220 à l'aide d'une dirListBox, d'une drivelistBox et d'une FileListBox
- 2)  était accompagnée du code nécessaire, capable de gérer le double-click sur un répertoire afin d'en extraire le nom et de le distingier d'un click

Tous mes efforts étant vains, j'en tire la conclusion suivante :

- soit le titre de la discussion avait été donné, une fois de plus, de façon ne permettant pas de cerner de quoi il s'agissait..
- soit un demandeur, après avoir posé une question et obtenu sa réponse... s'est amusé à en poser une seconde sans ouvrir une nouvelle discussion ...

Le résultat est maintenant là : impossibilité de retrouver cette discussion et ma réponse, sauf à ouvrir, un par un, la totalité de mes messages (et il y en a beaucoup......)

Je demande vraiment que la plus grande sévérité soit observée dans ce domaine (attribution d'un titre adéquat de discussion, d'une part... et nécessité, d'autre part, de ne pas traiter, à la suite d'une première conversation, un nouveau sujet traitant d'une 2ème question...)

Bon...
je vais me calmer en allant regarder la mer (j'en ai besoin, là...)
Je coderai à nouveau (et dieu sait que je n'aime pas du tout coder 2 fois la même chose) à mon retour (dans 2 heures environ)...
Commenter la réponse de jmfmarques
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 15:53
0
Merci
Ouf tu me rassures car je me suis déjà fait engueuler pour avoir poser une question dont la réponse existait déjà dans le forum!!!

Merci pour ton aide car je galère depuis au moins 1 semaine à chercher, chercher....

Nono
Commenter la réponse de nono78220
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 janv. 2007 à 17:51
0
Merci
De retour.

En te relisant, je me dis que j'ai peut-être mieux encore à faire, comme code, mais ai besoin de précisions claires

1) où veux-tu afficher le NOM du dossier sélectionné ? et S'agit-il bien du seul NOM (sans le reste de son chemin) ?
2) pas bien compris ton affaire de plusieurs RTBs et préfère un exemple

Imaginons que tu sélectionnes le dossier C:\titi\toto cintenant les fichiers fic1.txt, fic2.txt et fic3.txt

où mets-tu le nom "toto" et que mets-tu dans tes RTB ?
"fic1.txt", "fic2.txt" et "fic3.txt" dans une seule RTB ?
ou "fic1.txt" dans une RTB, "fic2.txt" dans une autre et "fic3.txt" dans une autre ?
ou
leur contenu (pas leur nom, dinc) dans une textbox pour chacun ?
un petit synoptique clair de ce que tu as et de ce que tu veux avoir sera le mieux, sans t'étendre à ce que tu veux en faire ensuite, qui reste ton affaire.

J'attends.
Commenter la réponse de jmfmarques
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 17:59
0
Merci
selon ton exemple j'identtifier chaque client par la variable toto

toto est le nom du dossier
mes fichiers s'appellent totofic1.text, totofic2.txt, totofic3.txt

fic1.txt est mis dans sa RTB(1)
ficx2.txt est mis dans sa RTB(2)...

oui leur contenu dans une RTB chacune
Commenter la réponse de nono78220
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 janv. 2007 à 18:06
0
Merci
Ok..

De retour avec la "chose" dans 1 heure (après mon pastis)
Commenter la réponse de jmfmarques
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 18:10
0
Merci
je dois attendre pour l'apéro
je suis encore au boulot !
Commenter la réponse de nono78220
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 18:27
0
Merci
et pour terminer
j'ai utilisé loadfile

ex:  fic1.savefile "c:"c:\titi" & toto & "\fic1 " & toto & ".txt",

merci
Commenter la réponse de nono78220
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 18:28
0
Merci
non pas loadfile mais savefile pour sauvegarder

nono
Commenter la réponse de nono78220
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 janv. 2007 à 19:47
0
Merci
Coucou...

Passons maintenant aux choses sérieuses, si tu veux bien...

Je me suis volontiers prêté à ton jeu et suivi scrupuleusement le mécanisme que tu avais défini...

J'ai donc "joué" ton jeu...

j'attends maintenant de toi que tu t'interroges sur l'intérêt réel de ce mécanisme, compte tenu du résultat que tu voulais avoir...

Il ne me semble pas (mais alors pas du tout) astucieux de passer par ces "fausses astuces" et ces "vraies acrobaties en tous genres", quand même, pour faire ce que tu veux faire....


Je te laisse réfléchir sur chacun des points et revenir avec du réellement astucieux. Le développement informatique bien pensé commence par une réflexion bien conduite... et cette réflexion ne peut être complète que si la vision globale de chaque chose est bonne et que les connaissances sont suffisantes pour inclure cette vision "globale" dans un raisonnement. Tout se tient...

Ce n'est que parce que tu m'es fort sympathique (j'ai aimé ta façon de chercher à contourner des difficultés) que je te le dis là.

Amitiés
Commenter la réponse de jmfmarques
nono78220 182 Messages postés dimanche 3 décembre 2006Date d'inscription 28 octobre 2010 Dernière intervention - 22 janv. 2007 à 23:09
0
Merci
Coucou me revoilà,

J'ai intégré ton code à mon logiciel et je dois te dire que c'est royalement royal. Tout fonctionne. Je vais maintenant l'analyser pas à pas afin de le comprendre. En effet pour progresser, il faut analyser et étudier chaque fonction. J'apprend VB6 et pour cela j'ai débuté avec l'ouvrage de Diane Zak que je conseille vraiment à tous les débutants car il permet d'apprendre pas à pas les bases. D'ailleurs connaitrais-tu un ouvrage de ce genre d'un niveau plus élevé ?
Sincèrement un grand merci car je ne voyais pas de solution à mon problème. Je dormais très peu et réfléchissais sans cesse. La programmation c'est comme les échecs: on en rève la nuit !!
Pour répondre à ta question,  je  voulais que mes données enregistrées  soient accessibles par d'autres moyens que mon logiciels. Je connais 4 solutions (niveau débutant !)
- créer un fichier  à accès séquentiel
- créer un fichier à accès direct
Le problème est que les données enregistrées par ce mode ne sont pas lisibles facilement
- creer une base de donnée (pas encore étrudié et si on ne peut plus accéder à la base ?)
- enregistrer des RichTextBoxes en text. L'avantage: une RTB enregistrées peut être lues par word, wordpad..; et si par malheur mon logiciel se plantait, au moins mes données pourraient encore être lues !!!  Je pensais que ceci était à ma portée. En cherchant sur le forum et grâce à aux conseils de tous et notamment des tiens jmfmarques j'ai réussi à coder l'enregistrement des RTBoxes. Mais je ne pensais pas que la programmation des chargements des RTB serait plus difficile !!!! Et en voyant ton code, jamais je n'aurai pu !!!  Je voulais que chaque RTB soit identifiable par le nom du client et qu'elle soit enregistrée dans un dossier au nom du client. Oui mais voilà, une fois le logiciel fermé, la variable contenant le nom du client est perdu !! La difficulté consisite à la retrouver pour pouvoir ouvrir le fichier adéquat !!

Bref tu me retires une épine du pied. Je vais pouvoir avancer de nouveau car le chemin est encore long. Mais avant tout, je vais me replonger dans ton code, car je suis impatient de savoir comment tu as fait cela !!!

Encore merci et amitiés sincères.
Commenter la réponse de nono78220

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.