Forum Liberty Basic France

Général » Liberty et Windows Lire les entrées dans un dossier Win
Le 25/07/2016 à 11h28

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
Bonjour à tous,
Je sais que quelqu'un l'a déjà fait, mais je n'arrive pas à remettre la main dessus.
Je voudrais lire le nom des fichiers dans un dossiers Win, et les récupérer.
Si quelqu'un se souvient, ou à une solution ?
Mieux vaut un qui sait que dix qui cherchent !
Cordialement
H.
____________________
The Basic and I

Mail Web    
Le 25/07/2016 à 13h02

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Salut Denis, vois si tu tire quelque chose de ça:
(il faut mettre le point et l'extension dans le textbox)
Code VB :
 
' Mark Parkinson
' 08/10/02

' This program will list all the files in the whole directory structure
' which match the given file spec. A process called recursion is used.

' Feel free to use and adapt the program eg to sum the filespace used or
' delete files or rename files or move them.
' It is also easy to adapt the program to delete empty subdirectories.
    WindowWidth=540
    WindowHeight=305
    UpperLeftX=30'INT((DisplayWidth-WindowWidth)/2)
    UpperLeftY=100'INT((DisplayHeight-WindowHeight)/2)

    dim info$(10, 10)  'Ready for the files command.
    global conte
 
    'STATICTEXT #w.ouv, "OUVERT", 420, 80, 60, 20
    BUTTON #w.go, "EXPLORATEUR", [start], UL, 300, 15, 90, 25
    TEXTBOX #w.res, 20 , 90, 510, 25
    TEXTBOX #w.ex, 195 , 180, 40, 25
    BUTTON #w.ok, "Ok ?", [ok], UL, 340, 180, 40, 20
    BUTTON #w.go, "Go", [go], UL, 430, 180, 40, 20
    TEXTBOX #w.nomb, 340 , 220, 70, 20
    GRAPHICBOX #w.g, 5, 5, 520, 260
 
    open "Folder Analyser" FOR WINDOW AS #w
     print #w, "trapclose [quit]"  ' Le print est facultatif
     #w.g, "down"
     #w.g, "fill black"
      #w.go,"!disable":#w.ok,"!disable"
      #w.ex,"":exo$=""
      #w.g, "color yellow; backcolor black"
      #w.g, "font courier_new 14 bold"
      #w.g, "place 30 25":#w.g, "\ CHOISIR UN DOSSIER -->"
      #w.g, "font courier_new 12 bold"
      #w.g, "place 20 65":#w.g, "\ Puis, Ouvrir un fichier dans le dossier."
 
    #w.g, "color green; backcolor black"
    #w.g, "place 10 130":#w.g, "\ Ci-dessus: Supprimer la partie droite"
    #w.g, "place 10 160":#w.g, "\ Jusqu'au Dossier à Analyser/."
    #w.g, "color yellow; backcolor black"
    #w.g, "place 20 190":#w.g, "\Extension .???->"
    #w.g, "place 245 190":#w.g, "\PUIS:-->"
    #w.g, "place 390 190":#w.g, "\-->"
      #w.g, "color red; backcolor black"
      #w.g, "place 20 230":#w.g, "\NOMBRE DE FICHIERS TROUVES --->"
      #w.g, "flush"
 
  wait
 
  [start]
    filedialog "Open text file", "*.*", fileName$
    print "File chosen is ";fileName$
    #w.res,fileName$
 
    #w.ok,"!enable"
  wait
  [ok]
      conte=0
    #w.go,"!enable"
    #w.res, "!contents? var$"
    #w.ex, "!contents? exo$"
    if exo$="" then
       exo$=".*"
    end if
  wait
  [go]
  '---------------------------------- CORPS DU PROG -------------------------------
'Note no backslash - added later on.
placetohunt$= var$ 'chemin
thingtohuntfor$= "*"+ exo$ ' extension

print "now listing all files in ";placetohunt$;" which match ";thingtohuntfor$
print
 
call recurse placetohunt$, thingtohuntfor$
print
print "finished"
  #w.nomb, str$(conte)
 
 'close #w

'end
wait
 
sub recurse pathspec$,mask$
    'Put in the backslash separator.
    pathspec$=pathspec$+"\"
    files pathspec$, mask$, info$(
 
    filecount=val(info$(0, 0))
    subdircount=val(info$(0, 1))
 
for i=1 to filecount
    filename$= pathspec$+info$(i, 0)
    filesize$= info$(i, 1)
    datestamp$=info$(i, 2)
    print filename$;"     ";filesize$
    conte=conte+1
next i
 
'Arrays cannot be local to subs so the subdirs
'are all put in a string separated by *'s which
'can't occur in filenames.
list$=""
for i=1 to subdircount
    list$=list$+pathspec$+info$(f + i, 1)+"*"
next i
 
'The subdirs are now pulled out of the (local)
'string one at a time and the sub is called again.
'This process where a sub calls itself
'is called recursion.
while list$<>""
    p=instr(list$,"*")
    p$=left$(list$,p-1)
    call recurse p$,mask$ 
    list$=mid$(list$,p+1)
wend
end sub
 
  wait
  [quit]
    CLOSE #w
    END
 
____________________
Roro

   
Le 25/07/2016 à 14h32

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
Merci Roland !
Y en a des qui sont toujours sur la brèche !
Je bricole et je teste ce que tu m'as envoyé, mais ce soir.
Là, dans l'immédiat, raid express chez M Bricolage pour acheter et installer une rampe lumineuse dans la salle de bain, l'ancienne a rendu l'âme !
A plus, et encore merci
H.
____________________
The Basic and I

Mail Web    
Général » Liberty et Windows Lire les entrées dans un dossier Win  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie