Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1780 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème urgent vbs erreur 800A01A8

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème urgent vbs erreur 800A01A8

n°1511674
slr56
Tout problème a sa solution.
Posté le 07-02-2007 à 09:25:54  profilanswer
 

Bonjour à tous,
 
je travaille en VBS
 
j'ai un problème très urgent qui doit être réglé pour demain!!!! Je vous explique le topo :  
j'ai un répertoire "A" qui contient un répertoire "B"
Dans le répertoire "A" il y a un ensemble de fichiers textes de 1 à N
Dans le répertoire "B", il y a aussi un ensemble de fichiers textes de 1 à N ayant les mêmes noms que ceux dans "A".
 
Je veux comparer les noms des fichiers du répertoire "A" et les noms des fichiers du répertoire "B".
Quand les noms de fichiers sont identiques, je veux récupérer le contenu des fichiers en utilisant la fonction "mid".(ça je sais le faire)
Ensuite je vais insérer ces mid dans ma base ACCESS avec l'insert into (je sais le faire aussi)
 
Mais comment  
 

Code :
  1. Set chemin1 = FSO.GetFolder(A)
  2. Set chemin2=FSO.GetFolder(B)
  3. Set collection_fichiers = chemin1.Files
  4. Set collection_fichier2 = chemin2.Files
  5. For Each fichier1 In collection_fichiers
  6.    ff1=right(fichier1,len(fichier1)-instrrev(fichier1,"\" ))
  7.     Set fichier_a_lire=FSO.OpenTextFile(fichier1,ForReading)
  8.         fichier2=chemin2 & "\" & ff1
  9.     ff2=right(fichier2,len(fichier2)-instrrev(fichier2,"\" ))
  10.         IF ff1=ff2 AND (ff1.Name <> erreur1) AND (ff1.Name <> erreur2)THEN
  11.                 ligne=fichier_a_lire.readline
  12.                 ligne2=ff2.readline


 
Voici ce que j'ai déjà fait mais j'ai déjà un problème à la ligne 14.
Erreur : Objet requis :'XXXXY'
Code : 800A01A8
Je ne comprends vraiment pas l'erreur.... :(  :sweat:  :sweat:  :cry:  :cry:  :cry:  :cry:  
 
Aidez-moi svp!!!!! :cry:  :cry:  
 
C'est vraiment très urgent!!!
Merci de votre compréhension!!!


Message édité par slr56 le 07-02-2007 à 10:12:34
mood
Publicité
Posté le 07-02-2007 à 09:25:54  profilanswer
 

n°1511684
seniorpapo​u
Posté le 07-02-2007 à 09:51:58  profilanswer
 

Bonjour,
retires les majuscules de ton titre, tu vas te faire jeter pour rien,
 
pour ton pb, éloimines les pb par exemple en sortant tes deux XXX...
 
tu les mets dans une variable avant ton IF.  
je ne travaille pas en VBS, mais en VBA il faut mettre des espaces entre le <> et le"
Cordialement

n°1511686
slr56
Tout problème a sa solution.
Posté le 07-02-2007 à 09:55:04  profilanswer
 

seniorpapou a écrit :

Bonjour,
retires les majuscules de ton titre, tu vas te faire jeter pour rien,
 
pour ton pb, éloimines les pb par exemple en sortant tes deux XXX...
 
tu les mets dans une variable avant ton IF.  
je ne travaille pas en VBS, mais en VBA il faut mettre des espaces entre le <> et le"
Cordialement


 
Merci pour la remarque du titre  ;)  
 
 
Qu'est ce que tu entends par "sortir les XXX"? :heink:  
Ca veut dire quoi "IF"???  :ange:  

n°1511690
seniorpapo​u
Posté le 07-02-2007 à 09:59:51  profilanswer
 

re,
 
monxy="XXXXY.txt"
monxz="XXXXZ.txt"  
IF ff1=ff2 AND (ff1.Name <> monxy ) AND (ff1.Name <> monxz)THEN
 
le IF c'est le IF qui commence ta ligne 14

n°1511694
slr56
Tout problème a sa solution.
Posté le 07-02-2007 à 10:05:55  profilanswer
 

j'ai corrigé mais malheuresement le problème est toujours le même :(.
 
Merci quand même de ton aide seniorpapou.

n°1511703
slr56
Tout problème a sa solution.
Posté le 07-02-2007 à 10:18:22  profilanswer
 

Si quelqu'un à une solution différente de la mienne mais qui me donne ce que je veux en résultat, je suis preneur!!!!!!!!!!!!!!!!!!! :)

n°1511726
seniorpapo​u
Posté le 07-02-2007 à 10:42:59  profilanswer
 

re,
que représente ton ff1.name?

n°1511734
slr56
Tout problème a sa solution.
Posté le 07-02-2007 à 11:01:16  profilanswer
 

le nom du fichier qui est instanciée dans la variable ff1
 
C'est bien la propriété "Name" qui reprend le nom du fichier, non? :??:


Message édité par slr56 le 07-02-2007 à 11:01:29
n°1511735
seniorpapo​u
Posté le 07-02-2007 à 11:01:41  profilanswer
 

re,
ne serait-ce pas un peu cela?
 
Set chemin1 = fso.GetFolder("c:\asuppr1" )
Set chemin2 = fso.GetFolder("c:\asuppr2" )
Set collection_fichiers = chemin1.Files
Set collection_fichier2 = chemin2.Files
 
 
 
For Each fichier1 In collection_fichiers
 
   ff1 = Right(fichier1, Len(fichier1) - InStrRev(fichier1, "\" ))
   If ff1 <> "erreur1.txt" And ff1 <> "erreur2.txt" Then
    Forreading = 1
     
        For Each fichier2 In collection_fichier2
            ff2 = Right(fichier2, Len(fichier2) - InStrRev(fichier2, "\" ))
     
            If ff1 = ff2 Then
            Set fichier1_a_lire = fso.OpenTextFile(fichier1, Forreading)
            Set fichier2_a_lire = fso.OpenTextFile(fichier2, Forreading)
            ligne1 = fichier1_a_lire.readline
                 
            ligne2 = fichier2_a_lire.readline
             
            'etc..etc..
            End If
           Next fichier2
    End If
Next

n°1511740
seniorpapo​u
Posté le 07-02-2007 à 11:03:38  profilanswer
 

re,re,
C'est bien la propriété "Name" qui reprend le nom du fichier, non?  
 
ton nom de fichier est dans ff1, si tu veux retirer l'extension, enlèves les 4 derniers caractères

mood
Publicité
Posté le 07-02-2007 à 11:03:38  profilanswer
 

n°1511741
ingenieurc​esi
Posté le 07-02-2007 à 11:04:50  profilanswer
 

bonjour,
 
à la place de
IF ff1=ff2 AND (ff1.Name <> erreur1) AND (ff1.Name <> erreur2)THEN
 
tu peux peut etre utiliser ca
Set cp1 = CreateObject("Scripting.filesystemobject" )
If cp1.fileExists(TON FICHIER) = True Then
 
à tester

n°1511745
seniorpapo​u
Posté le 07-02-2007 à 11:15:21  profilanswer
 

avec la sugggestion d'ingenieurcesi cela devient
 
Set chemin1 = fso.GetFolder("c:\asuppr1" )
Set chemin2 = fso.GetFolder("c:\asuppr2" )
Set collection_fichiers = chemin1.Files
Set collection_fichier2 = chemin2.Files
 
 
 
For Each fichier1 In collection_fichiers
 
   ff1 = Right(fichier1, Len(fichier1) - InStrRev(fichier1, "\" ))
   If ff1 <> "erreur1.txt" And ff1 <> "erreur2.txt" Then
    Forreading = 1
    fichier2 = chemin2 & "\" & ff1
    If fso.fileExists(fichier2) = True Then
         
             
            Set fichier1_a_lire = fso.OpenTextFile(fichier1, Forreading)
            Set fichier2_a_lire = fso.OpenTextFile(fichier2, Forreading)
            ligne1 = fichier1_a_lire.readline
                 
            ligne2 = fichier2_a_lire.readline
             
            'etc..etc..
            End If
           
    End If
Next

n°1511761
slr56
Tout problème a sa solution.
Posté le 07-02-2007 à 11:42:12  profilanswer
 

Merci beaucoup Seniorpapou et Ingenieurcesi!!!!!! :love:  :love:  :love:  
 
Maintenant j'ai un autre problème.... :ange:  :ange:  
 
Là, je fais la comparaison caractère après caractère des fichiers "égaux" par le nom, j'ai mis des msgbox dans les boucles pour vérifier qu'il rentre dedans or... il ne rentre pas dans les boucles SI !!!!Je sais que mon code est barbare... mais si quelqu'un pouvait m'aider ce ne serait pas de refus..  :ange:  
 
 

Code :
  1. DO WHILE NOT fichier_a_lire.AtEndOfStream
  2.                
  3.                                                 IF(mid(ligne2,1,8)="   5    " ) AND (mid(ligne2,38,6)=(mid(ligne,1,6)))THEN
  4.                                                        var_Ad_mac=mid(ligne2,9,14)
  5.                                                         ELSE IF ((mid(ligne2,1,6 )="5     " ) AND ((mid(ligne2,37,4)=(mid(ligne,2,4))) OR ((mid(ligne2,1,6)="5     " ) AND (((mid(ligne2,37,4)=(mid(ligne,34,4)))))))) THEN
  6.                                                                 var_Ad_mac=mid(ligne2,7,17)
  7.                                                         END IF
  8.                                                 END IF
  9.                                                 IF (mid(ligne,26,10)="connected " OR mid(ligne,26,10)="notconnect" ) AND mid(ligne,48,6)="normal" THEN
  10.                                                         IF mid(ligne,1,2)="NZ" then
  11.                                                                 var_Ip_routeur=mid(ligne,1,7)
  12.                                                         END IF
  13.                                                 END IF
  14. LOOP


Message édité par slr56 le 07-02-2007 à 12:30:41
n°1511863
slr56
Tout problème a sa solution.
Posté le 07-02-2007 à 16:18:16  profilanswer
 

up!

n°1511921
seniorpapo​u
Posté le 07-02-2007 à 18:03:15  profilanswer
 

bonsoir,
tu  n'as pas la possibilté d'envoyer deux fichiers ?
et de préciser ce que tu penses faire dans cette boucle?
dans ta boucle do while......loop, tu ne lis pas d'autre ligne, est-ce normal?

Message cité 1 fois
Message édité par seniorpapou le 07-02-2007 à 18:04:11
n°1512026
ingenieurc​esi
Posté le 07-02-2007 à 22:43:49  profilanswer
 

comment veux tu que mid(ligne2,1,8) soit egal à 5 alors que la longeur est de 8

n°1512027
ingenieurc​esi
Posté le 07-02-2007 à 22:45:28  profilanswer
 

c pareil pour
mid(ligne,26,10)="connected "

n°1512063
slr56
Tout problème a sa solution.
Posté le 08-02-2007 à 07:43:51  profilanswer
 

les espaces ne sont pas comptés?????

n°1512064
slr56
Tout problème a sa solution.
Posté le 08-02-2007 à 07:46:50  profilanswer
 

parce que tel c'est ici, je recherche la chaine"$$$5$$$$"
 
Ici, chaque dollar représente un espace.Il y a 3 espaces, le chiffre 5 et 4 espaces.
donc 8 caractères, c'est pourquoi dans la ligne2, je cherche à partir du premier caractère, sur 8 caractères :   mid(ligne2,1,8)


Message édité par slr56 le 08-02-2007 à 07:49:20
n°1512066
slr56
Tout problème a sa solution.
Posté le 08-02-2007 à 08:04:45  profilanswer
 

seniorpapou a écrit :

bonsoir,
tu  n'as pas la possibilté d'envoyer deux fichiers ?
et de préciser ce que tu penses faire dans cette boucle?
dans ta boucle do while......loop, tu ne lis pas d'autre ligne, est-ce normal?


 
je lis d'autres lignes mais je n'ai pas tout mis dans ce post. Le principe est le même pour les autres. Donc si je trouve le problème pour ces boucles je trouverai les erreur pour les autres.
 
Je peux envoyer 2 fichiers. Quand tu veux.

n°1512067
-ThX-
Not here anymore
Posté le 08-02-2007 à 08:16:21  profilanswer
 

pour tes problemes d'espaces, la fonction trim() prend une string et renvoie une string sans les espaces de début et de fin. Histoire de simplifier le probleme

n°1512178
slr56
Tout problème a sa solution.
Posté le 08-02-2007 à 13:31:01  profilanswer
 

merci pour l'info ThX!

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème urgent vbs erreur 800A01A8

 

Sujets relatifs
[php] signification erreur??Probleme assez con
Probleme avec des champs EDIT [ RESOLU ][MSSQL et PHP] Problème de boucle...
[batch] problème avec mon batch d'insertionProblème pour récuperer une image dans une variable
Flash, probleme pour les sonsProbleme d'URL tinyMCE
problème mmap avec un deamon [résolu]xsl/xml la feuille de style n'affiche pas la valeur souhaité
Plus de sujets relatifs à : Problème urgent vbs erreur 800A01A8


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR