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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  récupérer chaine dans fichier txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

récupérer chaine dans fichier txt

n°1113865
cradle6661
Posté le 09-06-2005 à 13:09:05  profilanswer
 

hello,tt d'abord dsl si la rep a ma question est déjà postée mais je ne l'ai pas vu et faut dire que je dois vite trouver une reponse (manque de temps)
mn prob est tt simple:
je dispose d'un fichier txt contentant la liste de ts les pc du réseau parmi d'autres info et je dois récupérer le nom de ces machines (PC1,PC2) par grp de 256 dans un autre fichier txt.
(256 car après je traite ces pc avec MBSA qui n'autorise que 256 hotes d'analyse par fichier txt)
n'ayant plus pratiqué de VB depuis un moment, quelqu'un aurait-il déjà ce code?
 
format du fichier txt :
 
netDomBlabla
blabala
 
Member    1 = \\PC1
Member    2 = \\PC2
.........
 
Merci d'avance
Cradle

mood
Publicité
Posté le 09-06-2005 à 13:09:05  profilanswer
 

n°1113985
gfa
Posté le 09-06-2005 à 14:12:45  profilanswer
 

cradle6661 a écrit :

hello,tt d'abord dsl si la rep a ma question est déjà postée mais je ne l'ai pas vu et faut dire que je dois vite trouver une reponse (manque de temps)
mn prob est tt simple:
je dispose d'un fichier txt contentant la liste de ts les pc du réseau parmi d'autres info et je dois récupérer le nom de ces machines (PC1,PC2) par grp de 256 dans un autre fichier txt.
(256 car après je traite ces pc avec MBSA qui n'autorise que 256 hotes d'analyse par fichier txt)
n'ayant plus pratiqué de VB depuis un moment, quelqu'un aurait-il déjà ce code?
 
format du fichier txt :
 
netDomBlabla
blabala
 
Member    1 = \\PC1
Member    2 = \\PC2
.........
 
Merci d'avance
Cradle


Salut,
 
On n'a pas pour habitude de donner du code tout fait :)
D'ailleurs on apprend mieux en cherchant par soi-même non?
 
Néanmoins, je vais te donner quelques pistes. Dans l'idée, tu dois ouvrir ton premier fichier txt en lecture (ou en TextStream) et l'autre fichier en écriture.  
Ensuite, tu lis les lignes de ton premier fichier en cherchant une chaîne de caractère t'indiquant que tu vas tomber sur un nom de PC. A partir de là, tu extraits de la ligne le nom du PC et tu l'écris dans l'autre fichier.
 
A la fin du programme tu fermes les deux fichiers et le tour est joué.
 
Je pense, montre en main, qu'avec l'aide en-ligne de VB il ne te faudra pas plus d'1/2h pour coder ce programme!
 
A+

n°1115259
cradle6661
Posté le 10-06-2005 à 09:15:08  profilanswer
 

als voici ma partie de code :
 
'-----------------------------------
'fonction qui ouvre le fichier members
Private Sub Command1_Click()  
Dim monFichier , Ligne  
Dim NoFichier , i  
monFichier = "C:\scripts\members.txt"  
'NoFichier = FreeFile  
OpenFile monFichier 'For Input As #NoFichier  
 
End Sub
 
 
'-------------------------------------
'fonction qui récupère le nom des pcs dans le fichier members
 
 
 nom_pc="pc1"
 
 
 
 
'------------------------------------
'fonction qui crée un second fichier et recopie les noms des pcs dedans
Sub CreateFile()
         Dim fso, tf
         Set fso = CreateObject("Scripting.FileSystemObject" )
  Set tf = fso.CreateTextFile("C:\scripts\res.txt", True)
 
         tf.Write  (nom_pc &Chr(13)& Chr(10) )
         tf.Close
End Sub
CreateFile()
 
 
*******************
donc je suis bloqué ici!
pour info,la partie analyse je le savais déjà, c'est le vbs qui me pose pb.en PERL je pourrais aussi le faire en 1/2h
mais la en VBS je bloque

n°1116768
AlainTech
Pas trouvé? Cherche encore!
Posté le 11-06-2005 à 18:54:02  profilanswer
 

Je viens de me rendre compte que l'aide de VBA est nettement moins conviviale en Office 2003 qu'en 97.
Je suis donc allé rechercher dans Office 97 comment faire.
 
C'est du VBA, je n'ai pas testé en VBS:

Dim iFileOut As Integer
 
Private Sub Start()
  Dim aSplit() As String
  Dim iFileCount As Integer
  Dim iFileIn As Integer
  Dim iLine As Integer
  Dim sBuffer As String
  Dim sInFile As String
  sInFile = "C:\scripts\members.txt"
  iFileIn = FreeFile
  Open sInFile For Input As #iFileIn
  NewFile (1)
  iLine = 0
  iFileCount = 1
  Do While Not EOF(iFileIn)
    Line Input #iFileIn, sBuffer
    If UCase(Left$(sBuffer, 6)) = "MEMBER" Then
      aSplit = Split(sBuffer, "=" )
      Print #iFileOut, Trim(aSplit(1))
      iLine = iLine + 1
      If iLine = 256 Then
        Close #iFileOut
        iFileCount = iFileCount + 1
        NewFile (iFileCount)
        iLine = 0
      End If
    End If
  Loop
  Close
End Sub
 
Sub NewFile(iCount As Integer)
  Dim sOutFile As String
  sOutFile = "C:\scripts\res" & CStr(iCount) & ".txt"
  iFileOut = FreeFile
  Open sOutFile For Output As #iFileOut
End Sub


J'utilise une variable globale. A toi de voir comment gérer tout ça plus "proprement" et adapter au VBS.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!

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

  récupérer chaine dans fichier txt

 

Sujets relatifs
justification d'un fichier qui existe deja!! VBArecuperer le contenu d'un mail
[Jsp/Java] Récupérer les propriétés d’une imagecréer un raccourci d'un fichier depuis dos
Récupérer l'heure du système avec un std::vector<int>importer des noms contenu dans un fichier excel dans outlook
Lire un fichier texte avec un .batRécupérer le contenu de répertoires
Récupérer l'index d'un item d'un array constantRécupérer une variable d'environnement
Plus de sujets relatifs à : récupérer chaine dans fichier txt


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