Rechercher fichier .ini sur chemin donné par user !!!!!!

cori2boonzsquad Messages postés 12 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 4 août 2004 - 15 mars 2004 à 14:32
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 15 mars 2004 à 16:12
Bonjour je debute en prog mais kand je dis je debute ceci signifie ke je suis entieremment novice !!!!!!!

Mon probléme c que dans la boite ou je suis en formation il me demande de developper en VB une application non visible (donc un module en fait je crois ke c ca lol).
Et ce module demande a user de saisir un chemin de dossier ou de lecteur, ensuite il cherche si il y a un fichier ini dans le chemin specifié si oui il le lit sinon il affiche "y a pas de fich".
Apres la lecture du .ini il faut determiner si il y a des fichiers dans le chemin.

je sais pas si vs allez comprendre ce ke j'ai ecrit car meme moi j'ai du mal mais bon ki peut m'aider me sauve lol

co

4 réponses

cori2boonzsquad Messages postés 12 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 4 août 2004
15 mars 2004 à 14:39
ce que j'ai deja commencé a faire mais sa marche pas !!!!


DECLARATION
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias "GetPrivateProfileSectionA" _
(ByVal lpAppName As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String)

Menu Principal
Sub Main()
Dim strFolder As String
Dim sFile As String
Dim sFileIni As String

strFolder = InputBox("Entrer le chemin du dossier") 'demande à user de saisir le chemin
sFile = Dir(strFolder)

If sFile = vide Then
MsgBox ("il n'y a pas de fichiers dans ce dossier")
Else
sFileIni = ExisteIni(strFolder, sFile)
Call sReadSettingIni
End If
End Sub

Fonction Existe fichier INI
Public Function ExisteIni(strFolder As String, sFile As String) As Boolean
Dim Retour As Long
Dim Valeur As String

Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir une section
Retour = GetPrivateProfileSection(strFolder, Valeur, 32766, sFile) ' Retour représente la longueur de la section, donc si elle est supérieure à 0, elle existe
If Retour >= 0 Then
ExisteIni = True
Else
MsgBox ("il n'y a pas de fichier")
End If
End Function

Procedure lire INI
Public Sub sReadSettingIni()
Dim fsoIni As New FileSystemObject
Dim fstIni As TextStream
Dim strLine As String

Set fstIni = fsoIni.OpenTextFile(App.Path & "\\*.ini", ForReading, False)

While Not fstIni.AtEndOfStream
strLine = fstIni.ReadLine
If Len(strLine) > 0 Then
'utilisation de strLine
End If
Wend

fstIni.Close
End Sub

voila je me suis arreté la car sa marche pas sa me saoule!!!!!
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
15 mars 2004 à 14:53
1- A quoi corrspond ton "Vide" dans "If sFile= Vide ..." ???
Si la fonction Dir() ne trouve pas le fichier rechercher, elle te renvoi une chaine vide, qui en vb s'écrit ""
Don ton test devriendra "If sFile = "" Then ...."2- strFolder est saisie pas l'utilisateur et contient le chemin à explorer. Pour rechercher un *.ini dedans, ta ligne "sFile Dir(strFolder) sera plutôt du genre : "sFile Dir(strFolder & "*.ini")
Ceci concatène le chemin saisi par le user (dans strFolder) à la chaine "*.ini" et utilise cette chaine comme masque dans Dir( ...)
Donc si le user saisie "c:\monrep", alors c'est comme si tu faisait "sFile = Dir("c:\monrep\*.ini"). Je suppose que c'est bien ce que tu veux ?
Il faut juste s'assurer d'un truc, que le user a mis 1 "" à la fin du chemin saisie. Pour cela, juste après le inputbox(...) ajoute cette ligne :
If Right$(strFolder,1) <>"" then strFolder = strFolder & ""

En gros : Si le dernier caractère à drotie de strFolder n'est pas un "", alors ajoutes-le

J'espère que cela t'aidera ...

Christophe R.
0
cori2boonzsquad Messages postés 12 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 4 août 2004
15 mars 2004 à 15:55
C'est a peu pres cela oui ! je te remercie beaucoup !!!
malheureusement une fois que j'ai trouver un fichier .ini je n'arrive pas a le lire et a trouver si oui ou non il ya des fichiers ds le repertoire selectionné.
car la lecture du.ini doit me permettre de savoir si le repertoire est vide (ou ne contient que le fichier ini) ou si il contient des fichiers.
je t'avoue que je suis completement perdu lol
surtout k'en cours on ne fait que du C et la je dois faire tt sa en VB.
merci quand meme de ta precieuse aide.

co
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
15 mars 2004 à 16:12
dim sFile as string
' Trouve le 1er fichier ds c:\monrepsFile = Dir("c:\monrep\*.*")
' Tant qu'il existe un fichier ...
While sFile<> ""
  ' Affiche son nom dans une messagebox
  MsgBox sFile
  ' Recherche le fichier suivant dans le répertoire
  sFile = Dir
Wend

Avec ce code tu listes tous les fichiers ds c:\monrep
Si cela peut t'aider ??
Christophe R.
0
Rejoignez-nous