Forgefeu
Messages postés1Date d'inscriptionvendredi 4 octobre 2002StatutMembreDernière intervention 7 octobre 2002
-
7 oct. 2002 à 09:35
cs_Buzleclair
Messages postés8Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 5 octobre 2005
-
30 sept. 2005 à 02:01
Bonjour, je suis un petit nouveau et je voudrais vous demandez vos lumière sur un problème que je rencontre actuellement avec de la programmation sous VB6.0
j'ai crée un bouton qui avec l'aide d'un commondialog me permet d'ouvrir une fenêtre de dialogue pour aller chercher des fichiers. pour le commondialogue au niveau de la propriété "flag" je lui ai adjoint des propriétés:
(mon code est ci-dessous)
____________________________________________________________________________________________________________________
With boite
.CancelError = True
.Flags = &H200 Or &H4 Or &H2 Or &H80000 'propiétés d'aspect de la fenêtre, avec possibilité de choix multiple soit l'élément &H200
'On Error GoTo ErrHandler
.Filter = "Fichiers Word (*.doc)|*.doc|Fichiers Works (*.wps)|*.wps|Fichiers Enrichis (*.rtf)|*.rtf|Tous les fichiers (*.*)|*.*" 'permet d'afficher différent choix dans le combo Type de la fenêtre ouvrir
.DialogTitle = "Ouvrir" 'donne un nom à la fenêtre
.FileName = "" 'evite que lors d'ouverture on ne concerve que le premier chemin
.ShowOpen 'permet de créer la fenêtre ouvrir
End With
' --------------------------------------------
' renvoie la taille du fichier, dans le label 2
'et determine sa taille en fonction de valeur de
' grandeur comme GO ou MO OU KO etc..
'---------------------------------------------
If FileLen(boite.FileName) > 1024 ^ 3 Then
Label2 = FormatNumber((FileLen(boite.FileName) / 1024 ^ 3), -1) & "Go"
Else
If FileLen(boite.FileName) > 1024 ^ 2 Then
Label2 = FormatNumber((FileLen(boite.FileName) / 1024 ^ 2), -1) & "Mo"
Else
If FileLen(boite.FileName) > 1024 Then
Label2 = FormatNumber((FileLen(boite.FileName) / 1024), -1) & "Ko"
Else
Label2 = FileLen(boite.FileName) & "Octets"
End If
End If
End If
Label1 = boite.FileTitle 'renvoie le nom du fichier selectionné dans le label avec procedure d'ouverture grâce au commdialog
_________________________________________________________________________________________________________________
Mon problème est que si je selectionne un seul fichier mes labels sont renseignés tant au niveau du nom de fichier que de la taille du fichier.
Ok, c'est cool, mais si je fais une selection multiple de fichier comme me le permet "&H200" du Flag, je n'ai ni le boms des fichiers, ni la taille des deux 2. Comment dois-je faire pour que je puisse avoir dans le label l'ensemble des noms des fichiers et la taille globale de ceux-ci, sachant que par la suite je veux pouvoir demander à mon prog d'ouvrir chaque ficchier et copuier son contenu dans une variable qui sera incrementé à chaque ouverture et lecture et donc copie des differents fichiers pour à la fin copier le tout dans un fichier texte
Merci d'avance pour vos reponses
Forgefeu
PatDeLaYaute
Messages postés133Date d'inscriptiondimanche 28 avril 2002StatutMembreDernière intervention15 janvier 20093 7 oct. 2002 à 11:13
Salut,
je suis pas sûr de ce que je vais dire,
mais lorsque l'ont sélectionnent plusieurs fichiers dans un commondialog la propriété filename renvoie un valeur avec tous les nom de fichiers.
Je pense que tu devrais faire une boucle.
Extraire chaque nom de fichier puis déterminer la taille et l'additionnée à une variable somme.
cs_Buzleclair
Messages postés8Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention 5 octobre 2005 30 sept. 2005 à 02:01
En sélection multiple, la boite de dialogue ouvrir revoie une chaine contenant
tous les fichiers sélectionnées mais sous une "forme" particulière.. En effet entre
chaque fichiers, un caractere null est placé chr(0).
Il faut donc formater la chaine de retour pour retrouver ses petits (commondialog.filename)
Exemple pour traiter la chaine en retour :
Dim MesFichiers() As String
Dim i as integer
MesFichiers= Split(CommonDialog.filename, Chr(0))
If UBound(fichiers()) > 1 Then 'il y a plusieurs fichiers..
'Dans MesFichiers(0) tu devrais avoir le répertoire source donc,
'pour retrouver ta sélection :
For i = 1 To UBound(MesFichiers())
MsgBox MesFichiers(0) & "" & MesFichiers(i)
Next i
Else
'Traitement classique puisqu'il n'y a qu'un fichier...
End If