Combobox = fichiers txt

rgilles Messages postés 26 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 16 novembre 2009 - 30 nov. 2005 à 18:12
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 30 nov. 2005 à 20:37
Encore un problème se pose a moi (comme d'habitude)

J'ai un combobox dans lequel j'aimerai au form load charger tous les noms de fichiers texte (txt) qui ce trouverai dans un dossier nommé Divers.

Je ne connait que la solution Combo1.additem "Exemple" mais ne marche pas dans ce cas car invariable.

Donc si quelqu'un possede un exemple simple pour me montrer la demarche a suivre.

Merci de votre aide precieuse.

rgilles

4 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
30 nov. 2005 à 18:37
Comme ça je vois 3 méthodes :

1) Hyper simple mais ne te convient peut-être pas : tu remplaces ton
combobox par un FileListBox, et tu mets dans Form_Load,
File1.path=tonchemin

2) A peine plus compliqué, mais c'est le genre de méthode que j'appelle
bricolage: Tu mets aussi un FileListBox, mais en invisible. Et tu
utilise ce code :



Sub Form_Load()

File1.Path=TonChemin

combo1.clear

for i=0 to file1.listcount

combo1.additem file1.list(i)

next

end sub





3) Tu utilises les API suivantes :



Public Declare Function FindFirstFile
Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String,
lpFindFileData As WIN32_FIND_DATA) As Long

Public Declare Function FindNextFile Lib "kernel32" Alias
"FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As
WIN32_FIND_DATA) As Long




Là comme ça j'ai pas vraiment le temps de te faire un exemple, mais ça me semble la meilleure solution...



(T'as tte la doc que tu veux sur les api sur www.msdn.com, tu tapes le nom dans rechercher...)



Julien.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 nov. 2005 à 20:07
FAUT VRAIMENT ARRÊTER DE CONSEILLER N'IMPORTE QUOI !!!!!








[VB6]




Option Explicit

'

'

Private Sub Form_Load()

' ton fichier

Const sPathTxt As String = "C:\truc.txt"



' on clear le combo....

Combo1.Clear



' on le remplie ligne par ligne

Dim FF As Long, sMaLigne As String

FF = FreeFile



Open sPathTxt For Input As #FF

Do While Not EOF(FF)

Input #FF, sMaLigne

Combo1.AddItem sMaLigne

Loop

Close #FF

End Sub




<small> Coloration
syntaxique automatique [AFCK]</small>



++

PCPT [AFCK]
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
30 nov. 2005 à 20:27
pcpt < Si j'ai bien compris ce qu'il veut, ta solution est KO, car il veut la lsite des fichiers txt du dossier et pas leur contenu. Mais par contre, je suis d'accord avec toi !! FAUT ARRETER DE PROPOSER N'IMPORTE QUOI !!!!!
Masquer un Filelistbox pour ensuite refaire du copier coller des items vers la combo, c'est du délire !!! Et proposer d'utiliser des API pour énumérer des fichiers, c'est du grand luxe !!

Donc je propose (si j'ai bien compris la demande !!)

Private Sub Form_Load()
Dim Fic as String

Combo1.Clear
Fic = Dir("C:\Machine\Bidule\Divers\*.txt")
While Not Fic = ""
If Fic <> "." And Fic <> ".." Then Combo1.AddItem Fic
Fic = Dir
Wend
End Sub

CR
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 nov. 2005 à 20:37
j'ai été trop vite à la lecture, c'est bien un listing, donc un DIR. autant pour moi pour l'exemple, sans changer pour autant le moindre mot à ma première ligne!




(merci de ta vigilance CR)



ps : en principe, le test de dossier est inutile. un simple Combo1.AddItem Fic devrait suffir.
0
Rejoignez-nous