OVH Cloud OVH Cloud

Lecture de répertoire et récursitivité

26 réponses
Avatar
Blaise Cacramp
Bonjour

Purée que l'on devient vite vieux.

Bon ben je bloque pour la lecture des répertoires ( dossiers et
sous-dossiers ) en VB6.


Merci beaucoup, Papy Blaise

10 réponses

1 2 3
Avatar
LE TROLL
Bonsoir,

Peux-tu préciser ce que tu veux aire, car il y a un paquet de commandes,
tu parles de répertoires et de dossiers et de sous-dossiers, il me semble
bien que pour Dos il n'existe que des fichiers et des répertoires (sous
répertoires si on veut) ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Blaise Cacramp" a écrit dans le message de news:

Bonjour

Purée que l'on devient vite vieux.

Bon ben je bloque pour la lecture des répertoires ( dossiers et
sous-dossiers ) en VB6.


Merci beaucoup, Papy Blaise




Avatar
Jean-marc
Blaise Cacramp wrote:
Bonjour

Purée que l'on devient vite vieux.

Bon ben je bloque pour la lecture des répertoires ( dossiers et
sous-dossiers ) en VB6.


Merci beaucoup, Papy Blaise



Bonjour/Bonsoir,

On peut lister les fichiers et répertoires avec la fonction Dir$
Hélas, celle-ci n'est pas réentrante et ne peut donc pas être
appellée récursivment.


Pour cela, on doit alors employer 2 fonctions de l'API Windows,
FindFirstFile et FindNextFile, ces 2 fonctions permettant elles
les apples récursifs.

Tu trouveras ici une implémentation complète en VB d'une fonction
de recherche récursive utilisant les 2 fonctions sus-citées.

http://docvb.free.fr/apidetail.php?idapiF

Bien cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Blaise Cacramp
Merci Jean-Marc (et les autres)

Encore une question : quelle différence entre nFileSizeHigh As Long et
nFileSizeLow As Long ?
le 1er est-il la taille réservée sur le disque (cfr cluster) et le second la
taille réelle ?

"Jean-marc" a écrit dans le message
news: eqinan$33o$
Blaise Cacramp wrote:
> Bonjour
>
> Purée que l'on devient vite vieux.
>
> Bon ben je bloque pour la lecture des répertoires ( dossiers et
> sous-dossiers ) en VB6.
>
>
> Merci beaucoup, Papy Blaise

Bonjour/Bonsoir,

On peut lister les fichiers et répertoires avec la fonction Dir$
Hélas, celle-ci n'est pas réentrante et ne peut donc pas être
appellée récursivment.


Pour cela, on doit alors employer 2 fonctions de l'API Windows,
FindFirstFile et FindNextFile, ces 2 fonctions permettant elles
les apples récursifs.

Tu trouveras ici une implémentation complète en VB d'une fonction
de recherche récursive utilisant les 2 fonctions sus-citées.

http://docvb.free.fr/apidetail.php?idapiF

Bien cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/





Avatar
Jacques93
Bonjour Blaise Cacramp,
Blaise Cacramp a écrit :
Merci Jean-Marc (et les autres)

Encore une question : quelle différence entre nFileSizeHigh As Long et
nFileSizeLow As Long ?
le 1er est-il la taille réservée sur le disque (cfr cluster) et le second la
taille réelle ?




La taille est stockée sur 64 bits, ce qui permet d'avoir des fichiers
dépassant les 4 Go :

Un entier de type Long est stocké sur 32 bits,

nFileSizeLow : 2^32 = 4 294 967 296

Si nFileSizeHigh est diffèrent de zéro cela indique un fichier supérieur
à 4 Go. Sur 64 bits :

2^64 = 1.84 467 441 E19


--
Cordialement,

Jacques.
Avatar
Blaise Cacramp
creuze creuze crzzzzzzz

Donc taille 2^(high+low) ?



"Jacques93" a écrit dans le message news:
#
Bonjour Blaise Cacramp,
Blaise Cacramp a écrit :
> Merci Jean-Marc (et les autres)
>
> Encore une question : quelle différence entre nFileSizeHigh As Long


et
> nFileSizeLow As Long ?
> le 1er est-il la taille réservée sur le disque (cfr cluster) et le


second la
> taille réelle ?
>

La taille est stockée sur 64 bits, ce qui permet d'avoir des fichiers
dépassant les 4 Go :

Un entier de type Long est stocké sur 32 bits,

nFileSizeLow : 2^32 = 4 294 967 296

Si nFileSizeHigh est diffèrent de zéro cela indique un fichier supérieur
à 4 Go. Sur 64 bits :

2^64 = 1.84 467 441 E19


--
Cordialement,

Jacques.


Avatar
Jacques93
Blaise Cacramp a écrit :
creuze creuze crzzzzzzz

Donc taille 2^(high+low) ?




Non, là on atteindrai des capacités phénoménales !

Les valeurs 2^32 et 2^64 indiquent les valeurs maximales que l'on peut
stocker sur 32 et 64 bits.

Extrait de

http://msdn2.microsoft.com/en-us/library/aa365740.aspx

The size of the file is equal to

(nFileSizeHigh * (MAXDWORD+1)) + nFileSizeLow.

où MAXDWORD = 2^32


--
Cordialement,

Jacques.
Avatar
Jean-marc
>Blaise Cacramp wrote:
creuze creuze crzzzzzzz

Donc taille 2^(high+low) ?



En fait, non.

Ca marche comme en base 10:
3482 = 3*1000 + 4*100 + 8*10 + 2
= 3*10^3 + 4*10^2 + 80*10^1 + 2 * 10^0

Ici, low et high sont tous sur 32 bits.

donc taille = high * 2^32 + low

on peut donc stocker un fichier d'une taille
maxi de 2^64 - 1 = 18446744073709551615
^
|
+-----------------------------+
|
| dans ce cas, low vaudra la même chose que high:
| (FFFFFFFF en hexa) soit : 4294967295 en décimal.
|
| et la valeur totale sera:
|
| high * 2^32 + low | 4294967295 * 2^32 + Low | 18446744069414584320 + 4294967295 |
| +----------------------+
| + 18446744073709551615 +
| +----------------------+
|
+--->> CQFD.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Jacques93
Jacques93 a écrit :
The size of the file is equal to

(nFileSizeHigh * (MAXDWORD+1)) + nFileSizeLow.

où MAXDWORD = 2^32




Rectification :

MAXDWORD = 2^32 - 1

C'est à dire :

0xFFFFFFFF

--
Cordialement,

Jacques.
Avatar
Blaise Cacramp
Purée, suis-je con ce WE. Pour preuve (de ma connerie actuelle et de mon
savoir) ce petit machin de moi : http://www.ubiq.be/initiation/index.html


"Jean-marc" a écrit dans le message
news: eqkn8f$i7c$
>Blaise Cacramp wrote:
> creuze creuze crzzzzzzz
>
> Donc taille 2^(high+low) ?

En fait, non.

Ca marche comme en base 10:
3482 = 3*1000 + 4*100 + 8*10 + 2
= 3*10^3 + 4*10^2 + 80*10^1 + 2 * 10^0

Ici, low et high sont tous sur 32 bits.

donc taille = high * 2^32 + low

on peut donc stocker un fichier d'une taille
maxi de 2^64 - 1 = 18446744073709551615
^
|
+-----------------------------+
|
| dans ce cas, low vaudra la même chose que high:
| (FFFFFFFF en hexa) soit : 4294967295 en décimal.
|
| et la valeur totale sera:
|
| high * 2^32 + low > | 4294967295 * 2^32 + Low > | 18446744069414584320 + 4294967295 > |
| +----------------------+
| + 18446744073709551615 +
| +----------------------+
|
+--->> CQFD.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/





Avatar
Jean-marc
Blaise Cacramp wrote:
Purée, suis-je con ce WE. Pour preuve (de ma connerie actuelle et de
mon savoir) ce petit machin de moi :
http://www.ubiq.be/initiation/index.html



Non non, pas con du tout! On a tous des baisses de forme :-)

Sympathique ton site, bien fait, sobre, clair et didactique.

j'ai même appris qu'on avait inventé le "kibi"! (mon dieu ...)

Bonne suite en tout cas!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
1 2 3