Trouver une lettre libre pour un lecteur version 2

Soyez le premier à donner votre avis sur cette source.

Vue 3 154 fois - Téléchargée 200 fois

Description

ce code est fait par moi (petit débutant vbiste) et consiste à trouver (comme son nom l'indique) une lettre de libre à assignée à un cd, dd ,dk, etc ...

je l'ai fais très simple exprès pour que d'autres débutants puisse comprendre

dans cette version j'ai remplacé la list par un tableau ce qui est plus éléguant :)
j'ai aussi modifier un test de sorti de boucle pour ne pas a avoir a affecter une valeur a une variable pour sortir de ma boucle.

voilou si vous avez des commentaires constructifs à faire n'hésitez pas :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
222
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
30 juin 2008

HEY. MEME PAS BESOINS DE DRIVELISTBOX
<
function FindLetter as string
on error resume next
dim fso
set fso=createobject("scripting.filesystemobject")
for i = asc("c") to asc("z")
if fso.getdrive(chr(i) & ":").driveletter=empty then findletter=chr(i):exit for
next
set fso=nothing
end function
>
c pas beau ça?
Messages postés
38
Date d'inscription
vendredi 27 septembre 2002
Statut
Membre
Dernière intervention
29 mai 2006

Merci de ton aide mauricet
j'aime les commentaires qui ne se contente pas de critiquer :)

je suis de ton avis d'autant plus que pour moi le but n'est pas forcément de trouver une lettre de libre a pouvoir assignée mais de progresser en vb

merci
Messages postés
89
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
28 juillet 2008

Bonjour
A mon avis, il ne faut jamais abandonner, bien que le code de Renfield est meilleur, il faut faire aboutir ton idée afin d'en tirer l'expérience.
Je me suis permit de modifier ton code, tout en restant dans ton idée.
Option Explicit
Private Sub Command1_Click()
Dim i As Integer
Dim lettre As String
Dim numlettre As Integer

'rempli list1 du contenu du poste de travail
For i = 0 To 25
List1.AddItem (Drive1.List(i))
If Drive1.List(i) = "" Then Exit For
Next i

i = 1
Do Until lettre = "z"
lettre = Mid$(List1.List(i - 1), 1, 1)
'affecte la valeur ascii de lettre
If lettre <> "" Then numlettre = Asc(lettre)
'vérifie si les lettres se suivent
'If Asc(Mid$(List1.List(i), 1, 1)) <> numlettre Then
If List1.List(i) = "" Then
'elle se suivent pas donc y a une lettre de libre
Text1.Text = Chr(numlettre + 1)
numlettre = Asc(Text1.Text)
List2.AddItem Chr(numlettre)
Form1.Print numlettre
If numlettre 122 Then lettre "z"
End If
i = i + 1
Loop

End Sub
A bientôt
Maurice Thiébaut
Messages postés
38
Date d'inscription
vendredi 27 septembre 2002
Statut
Membre
Dernière intervention
29 mai 2006

j'ai mis 10 parceque comme je suis un DEBUTANT je connaissais pas la propriété listcount de drivelistbox mais c'est nickel je met la source à jour
merci
au fait pour les plantages moi çà tourne très bien, je suis sous 2000
vous êtes avec quel système ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
ton programme plante, des que je cliques sur un bouton....
tu m'expliqueras 2 choses , stp :
- pourquoi tu for i = 0 to 10 (pourquoi 10 !!!!!!)
- pourquoi tu places dans list1 les controles presents dans le Drive....

voici mon code , du clic sur le bouton :

Private Sub Command1_Click()
'26 lettres, des Bytes suffisent donc amplement (0->255)
Dim a As Byte, i As Byte, Existe As Boolean
'on vide la liste
List1.Clear
For a = Asc("a") To Asc("z") 'on parcours tout l'alphabet
Existe = False 'flag permettant de savoir si un lecteur possede la lettre en cours
For i = 0 To Drive1.ListCount - 1 'parcours la liste de lecteurs
If Left$(Drive1.List(i), 1) = Chr$(a) Then 'si la lettre du lecteur est celle analysée
Existe = True 'on met le flag a vrai
Exit For 'on ne regarde pas les autres lecteurs
End If
Next i
' si aucun lecteur n'a cette lettre, on l'ajoute dans la liste
If Not Existe Then List1.AddItem Chr$(a)
Next a
End Sub

voila, mais j'imagines que "si tu t'étais un peu pris la tête avec le code tu t'en serais rendu compte :)"
Afficher les 7 commentaires

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.