Utilisation d'un fichier texte comme fichier config.text

Résolu
kg_online Messages postés 39 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 4 juin 2007 - 9 févr. 2005 à 09:48
kg_online Messages postés 39 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 4 juin 2007 - 9 févr. 2005 à 18:23
Bonjour tout le monde,


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />



J'ai un petit problème: j'ai créer un fichier config (test.text) à partir duquel je souhaite extraire des infos pour les utiliser dans mon programme en les comparant avec des noms de fichiers("toto") et des poids de référence("poids") lus. En effet, j'ai stocker dans le tableau Max(i) tous les poids des fichiers(en octets) et dans Nom(i) toutes les chaînes de caractères qui permettrons d'identifier un nom de fichier et de tester son poids avec la référence.
*** le premier problème est que les identifiants n'ont pas la même longueur, j'ai créé une longueur standard et donc quand je les copie dans le tableau, certains comportent des espaces et donc ne peuvent pas être identifiés.
--- l'idée que j'avais c'était de supprimer tous les espaces avant de commencer les tests mais ça a pas marché.
*** l'autre problème est que j'arrive pas à le faire les tests sous forme de boucle :c'est à dire un test pour tous.
Rmq : Text1 est un répertoire.
NB : le fichier texte est en bas.
Merci de votre aide
******************************************************************************





Private Sub Command1_Click()


'''''''


Dim i As Integer


'Déclaration de tableau


Dim Nom(1 To 25) As String


Dim Max(1 To 25)


'ouverture de la feuille à lire


Open "c:\documents and settings\??????\bureau\test.txt" For Input As #1


'lire jusqu'à la fin de la page


'''''''


Do Until EOF(1)


i = i + 1


Line Input #1, Ligne


Var1 = Mid(Ligne, 1, 7)


Var2 = Mid(Ligne, 10, 15)


Max(i) = Var1


Nom(i) = Var2
Loop


'''''''


Dim fos As Scripting.FileSystemObject


Dim fd As Scripting.Folder


Dim fl As Scripting.File


Dim sFolder As String





'Initialisation du nom du dossier


sFolder = Text1


Set fos = CreateObject("Scripting.FileSystemObject")


'Récupérer l'instance du dossier


Set fd = fos.GetFolder(sFolder)





'lister les fichiers


For Each fl In fd.Files


toto = fl.Name


poids = fl.Size


If InStr(toto, Nom(1)) > 0 Then


if poids<Max(1)


MsgBox ("c'est bon T=" & toto)


Else


MsgBox "pas bon"
End if
Else


End If


If InStr(toto, Nom(2)) > 0 Then


if poids<Max(2)


MsgBox ("c'est bon T=" & toto)


Else


MsgBox "pas bon"
End if
Else


End If
Next fl


End Sub





_______________________________________________________________________


le fichier texte est

Test.text il comporte:





1024 "AMR" S4


6656 "MID_8_PV.mid" S3r_PV


11294 "MID_8.mid" S3r

5 réponses

kg_online Messages postés 39 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 4 juin 2007
9 févr. 2005 à 18:23
Merci Italia et Manu j'ai pu trouver la solution seul.En fait j'ai utilisé la fonction Trim de VB pour supprimer tous les blancs qui se trouvaient dans la chaîne de caractères avant de la mettre dans le tableau.
Voici ce que ça a donné:


'''''''<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Do Until EOF(1)


i = i + 1


Line Input #1, Ligne


Var1 = Mid(Ligne, 1, 6)


Var2 = Mid(Ligne, 11, 8)


Max(i) = (Var1)


Nom(i) = Trim(Var2)


Loop


'''''''


Dim fos As Scripting.FileSystemObject


Dim fd As Scripting.Folder


Dim fl As Scripting.File


Dim sFolder As String





'Initialisation du nom du dossier


sFolder = Text1


Set fos = CreateObject("Scripting.FileSystemObject")


'Récupérer l'instance du dossier


Set fd = fos.GetFolder(sFolder)





'lister les fichiers


For Each fl In fd.Files


'List1.AddItem fl.Name


toto = fl.Name


poids = fl.Size


If InStr(toto, Nom(1)) > 0 Then


if poids<Max(1)


MsgBox ("c'est bon T=" & toto)


Else


MsgBox "pas bon"
End if


End If


If InStr(toto, Nom(2)) > 0 Then


if poids<Max(2)


MsgBox ("c'est bon T=" & toto)


Else


MsgBox "pas bon"
End if


End If

Next fl


End Sub





_______________________________________________________________________


le fichier texte est

Test.text il comporte:





1024 "AMR" S4


6656 "MID_8_PV.mid" S3r_PV


11294 "MID_8.mid" S3r



Merci encore!!!Salut
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
9 févr. 2005 à 10:09
Jette un oeil à ce code-là. Il devrait t'apporter des idées :



Dim tablo() As String

Dim maLigne As String

Dim i As Long



maLigne = "6656 ""MID_8_PV.mid"" S3r_PV"



tablo = Split(maLigne, " ", , vbTextCompare)

For i = LBound(tablo) To UBound(tablo)

If Len(tablo(i)) > 0 Then

MsgBox tablo(i)

End If

Next i




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
9 févr. 2005 à 10:12
Pourquoi ne pas utiliser un fichier .INI ?

It@li@
0
kg_online Messages postés 39 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 4 juin 2007
9 févr. 2005 à 13:36
Italia je comprends pas trop le sytème fichier.INI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kg_online Messages postés 39 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 4 juin 2007
9 févr. 2005 à 15:16
Manu j'ai essayé ton programme mais ça marche que sur une ligne, mais moi j'aimerai l'utiler sur les colonnes.
Exemple:
12333
12226
69969
44444

Merci
0
Rejoignez-nous