Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/11/2012, 19h31   #1
b.gaumard
Membre du Club
 
Homme
Ingénieur systèmes et réseaux
Inscription : juillet 2012
Messages : 153
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Finance

Informations forums :
Inscription : juillet 2012
Messages : 153
Points : 49
Points : 49
Par défaut Concatener 2 fichiers texte

Bonjour,

J'ai 2 fichiers textes générés par les commandes :

netsh dhcp show all >> dhcp_all.txt
netsh dhcp show scopes >> dhcp_scopes.txt

Que je met en page à la volée.

Le premier contient :
Citation:
Subnet Used IP Adress Free IP_Adress
192.168.1.0 4 250
192.168.2.0 250 4
192.168.3.0 100 154
192.168.4.0 200 54
Le second contient :

Citation:
Subnet Name Subnet State Description Comment
vlan1 192.168.1.0 Active PRODUCTION Vlan Paris
vlan2 192.168.2.0 Disabled SECOURS Vlan Lyon
vlan3 192.168.3.0 Active PRODUCTION Vlan Marseille
vlan4 192.168.4.0 Disabled BACKUP Vlan Rennes
Comment faire en vbs pour concaténer les 2 et obtenir ceci :

Citation:
Subnet Name Subnet State Description Comment Used IP Adress Free IP_Adress
vlan1 192.168.1.0 Active PRODUCTION Vlan Paris 4 250
vlan2 192.168.2.0 Disabled SECOURS Vlan Lyon 250 4
vlan3 192.168.3.0 Active PRODUCTION Vlan Marseille 100 154
vlan4 192.168.4.0 Disabled BACKUP Vlan Rennes 200 54

Merci d'avance pour votre aide.
b.gaumard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 22h21   #2
ProgElecT
Rédacteur/Modérateur
 
Avatar de ProgElecT
 
Homme Francis MILLET
Inscription : décembre 2004
Messages : 3 198
Détails du profil
Informations personnelles :
Nom : Homme Francis MILLET
Âge : 57
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2004
Messages : 3 198
Points : 5 110
Points : 5 110
Envoyer un message via MSN à ProgElecT
Salut

J'ai fait des commentaires dans le code, un copier/coller, mais surtout une réflexion/analyse pour adapter à ton besoin.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
'------------------------------------------------------------------------------------------------
'partie principale du programme
Const ForReading = 1, ForWriting = 2
Dim oFso, F1, F2, F3
Dim Fichier1, Fichier2, Fichier3, T
Set oFso = CreateObject("Scripting.FileSystemObject")
 
'Ouverture et lecture du fichier
    Set F1 = oFso.OpenTextFile("C:\PersoFrancis\test1.txt", ForReading)
        'recuperation d'un tableau de x lignes
        Fichier1 = F1.ReadAll
        F1.Close
        Set F1 = Nothing
 
'Ouverture et lecture du fichier
    Set F2 = oFso.OpenTextFile("C:\PersoFrancis\test2.txt", ForReading)
        'recuperation d'un tableau de x lignes
        Fichier2 = F2.ReadAll
        F2.Close
        Set F2 = Nothing
 
'Écriture du fichier
    Set F3 = oFso.OpenTextFile("C:\PersoFrancis\test3.txt", ForWriting)
        'recuperation d'un tableau de x lignes
        F3.Write FichierSortie(Fichier1, Fichier2)
        F3.Close
        Set F3 = Nothing
 
Set oFso = Nothing
'------------------------------------------------------------------------------------------------
 
 
'----------- Fonction qui transforme au format du fichier à obtenir en sortie -------------------
Function FichierSortie(Fich1, Fich2)
Dim Tbl1, Tbl2, TblColonne, T
'MEMO
'Fich1 = "Subnet Name Subnet State Description Comment" & vbNewLine & _
'            "vlan1 192.168.1.0 Active PRODUCTION Vlan Paris" & vbNewLine & _
'            "vlan2 192.168.2.0 Disabled SECOURS Vlan Lyon" & vbNewLine & _
'            "vlan3 192.168.3.0 Active PRODUCTION Vlan Marseille" & vbNewLine & _
'            "vlan4 192.168.4.0 Disabled BACKUP Vlan Rennes"
'Fich2 = "Subnet Used IP Adress Free IP_Adress" & vbNewLine & _
'            "192.168.1.0 4 250" & vbNewLine & _
'            "192.168.2.0 250 4" & vbNewLine & _
'            "192.168.3.0 100 154" & vbNewLine & _
'            "192.168.4.0 200 54"
 
'but à atteindre
'FichierSortie = Subnet Name Subnet State Description Comment Used IP Adress Free IP_Adress
            'vlan1 192.168.1.0 Active PRODUCTION Vlan Paris 4 250
            'vlan2 192.168.2.0 Disabled SECOURS Vlan Lyon 250 4
            'vlan3 192.168.3.0 Active PRODUCTION Vlan Marseille 100 154
            'vlan4 192.168.4.0 Disabled BACKUP Vlan Rennes 200 54
 
Tbl1 = Split(Fich1, vbNewLine)'éclate le contenu ligne par ligne du fichier 1
Tbl2 = Split(Fich2, vbNewLine)'éclate le contenu ligne par ligne du fichier 2
 
Tbl2(0) = Replace(Tbl2(0), "Subnet", "")'supprime "Subnet" de la première ligne du fichier N°2
FichierSortie = Tbl1(0) & Tbl2(0) 'création de la première ligne
 
For T = 1 To UBound(Tbl1)
    TblColonne = Split(Tbl2(T), " ")'éclate le contenu de la ligne
    'Ajout des lignes suivantes     
    FichierSortie = FichierSortie & vbNewLine & Tbl1(T) & " " & TblColonne(1) & " " & TblColonne(2)
Next
End Function
'------------------------------------------------------------------------------------------------
ProgElecT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 22h50   #3
b.gaumard
Membre du Club
 
Homme
Ingénieur systèmes et réseaux
Inscription : juillet 2012
Messages : 153
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Finance

Informations forums :
Inscription : juillet 2012
Messages : 153
Points : 49
Points : 49
Parfait, merci pour ton aide.

Effectivement il me fallait une base pour voir comment procéder.

A ce stade si je l'execute ca me sort :

Citation:
Subnet Used IP Adress Free IP_Adress Name State Description Comment
192.168.1.0 4 250 192.168.1.0 Active
192.168.2.0 250 4 192.168.2.0 Disabled
192.168.3.0 100 154 192.168.3.0 Active
192.168.4.0 200 54 192.168.4.0 Disabled
Il manque donc des infos comme :

Name State Description Comment

Je vais regarder ca et je te dis ca demain.

Merci encore.
b.gaumard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 07h20   #4
ProgElecT
Rédacteur/Modérateur
 
Avatar de ProgElecT
 
Homme Francis MILLET
Inscription : décembre 2004
Messages : 3 198
Détails du profil
Informations personnelles :
Nom : Homme Francis MILLET
Âge : 57
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2004
Messages : 3 198
Points : 5 110
Points : 5 110
Envoyer un message via MSN à ProgElecT
Salut

Attention, pour des raison de facilité, il faut considérer l'inversement de l'appel en ouverture des 2 fichiers de base.
Fichier1 corespond au 2° fichier, donc fichier2 devient ton 1° fichier (comme sugéré dans la partie MEMO de la fonction).
ligne 23 du programme proposé, ajouter True pour l'ouverture du fichier résultat (si un nouveau fichier est créé, par la suite cela ne poserai plus de probléme).
Code :
    Set F3 = oFso.OpenTextFile("C:\PersoFrancis\test3.txt", ForWriting, True)
ProgElecT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2012, 17h09   #5
b.gaumard
Membre du Club
 
Homme
Ingénieur systèmes et réseaux
Inscription : juillet 2012
Messages : 153
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Finance

Informations forums :
Inscription : juillet 2012
Messages : 153
Points : 49
Points : 49
Parfait, merci !

Code :
1
2
3
4
5
6
7
Tbl1 = Split(Fichier1, vbNewLine)'éclate le contenu ligne par ligne du fichier 1
Tbl2 = Split(Fichier2, vbNewLine)'éclate le contenu ligne par ligne du fichier 1
 
For T = 0 To UBound(Tbl1)-1
	result = Tbl1(T) & vbtab & Tbl2(T)
	F3.writeline result
Next
b.gaumard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h18.


 
 
 
 
Partenaires

Hébergement Web