IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Extract d'un fichier à un autre


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Par défaut Extract d'un fichier à un autre
    Bonjour,
    Je cherche à faire un extract d'un fichier de type texte à un autre fichier de type texte, le problème c'est que je n'arrive pas à utiliser la fonction split deux fois de suite quelqu'un peut jeter un oeil à mon code et me dire quelque chose ? J'aimerais que cela split ligne par ligne puis mot par mot dans un second tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    ' code pour récupérer dans un fichier texte a partir d'une certaine ligne 
    set fso=CreateObject("Scripting.FileSystemObject")
     
    set oFich=fso.OpenTextFile("C:\Script_vbs\1.txt",1,True)
    tx=oFich.ReadAll
    oFich.Close    ' On ferme le fichier après en avoir lu le contenu
    nom_nouveau= InputBox("Quel sera le nom de votre nouveau fichier ?")
    'Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    'FichierTXT = "C:\Etienne\Script_vbs\" & nom_nouveau & ".txt"
    'Création du fichier texte
    'Set NewFichier = fso.CreateTextFile(FichierTXT,TRUE)
    tb=Split(tx,VbNewline)
     
    'For i=0 To Ubound(tb) 
                          ' puisque le premier index du tableau (tb) est 0(zéro)
      S=tb(1)
      tb2=Split(S,"         ")
     
      MsgBox S
      W = tb2(1)
      MsgBox W
      W = tb2(2)
      MsgBox W
     
     
     'Next
    'Affichage du résultat
     
    ' Nettoyage 
    Set oFich = Nothing
    Set fso = Nothing

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Pas très clair ??
    SVP, Veuillez, nous joindre le fichier input et le résultat attendu après son traitement pour voir plus clair les choses !

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Le fait est que l'on ne comprend pas trop ton besoin.
    Pour autant, au moins 2 discussions te seront peut être utiles
    Multiple récupération de ligne(s) du contenu d'un fichier texte
    Lecture d'une ligne de données dans un fichier .TXT selon un ID
    Dans le dernier lien, le postage N°5 que j'ai fait ainsi que celui de l_autodidacte postage N°6 devraient bien t'aider.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Par défaut
    Re-bonjour,
    Je suis désolé si je n'est pas était clair..
    En gros le principe serait découper un fichier texte en tableau à 2 dimensions l'une serait les lignes et l'autre chacun des mots dans les lignes, pour pouvoir en faire ce que je veux et le remoduler à ma guise.
    Est ce que cela est possible ?

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Option Explicit
    Dim TblLgns, TblMots(), Tbl2d()
     
    Sub ConstruitTableau2D()
    	Dim fso, fichier, T, U, V, D2max
    	Dim ContenuFichier, TblCol
    	Dim ChemNomFichier
        ChemNomFichier = "C:\MesProgs\En VBScript et HTA\Lire fichier sortie Tableau2D\FichierDemo.txt"
     
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set fichier = fso.opentextfile(ChemNomFichier, 1)
    	ContenuFichier = fichier.ReadAll
    	fichier.Close
    	Set fichier = Nothing
    	Set fso = Nothing
     
    	D2max = 1 'pour trouver la ligne qui a le plus de mots (colonnes)
        TblLgns = Split(ContenuFichier,vbNewline) 'on recupère le tableau de lignes
    	For T = 0 To UBound(TblLgns)
    		TblCol = Split(TblLgns(T), " ", -1, 1)
    		If D2max < UBound(TblCol) Then D2max = UBound(TblCol)
    	Next
    	'maintenant que l'on a les 2 dimensions du tableau ... 
    	Redim Tbl2d(UBound(TblLgns), D2max)' on le dimensionne
    	V=0 'pour incrémenter/dimensionner le tableau des mots
     
    	For T = 0 To UBound(TblLgns)
    		TblCol = Split(TblLgns(T), " ", -1, vbTextCompare)' on optient chaque mots de la ligne
    		For U = 0 To UBound(TblCol)' on boucle pour ....
    			Tbl2d(T,U)= TblCol(U) 'remplissage du tableau 2D
    			Redim Preserve TblMots(V)'on dimensionne au fur et a mesure le tableau de mots
    			TblMots(V) = TblCol(U) 'remplissage du tableau de mots
    			V=V+1
    		Next
    	Next
     
     End sub
     '-------------------------------------------
     ConstruitTableau2D
     
     Msgbox "1er ligne:" & vbNewline & TblLgns(0) & vbNewline & vbNewline & "dernière ligne:" & vbNewline & TblLgns(UBound(TblLgns))
     
     Msgbox "1er mot:" & vbNewline & TblMots(0) & vbNewline & vbNewline & "dernière mot:" & vbNewline & TblMots(UBound(TblMots))
     
     Msgbox "Affichage du quatrième mot de la troisième ligne: " & vbNewline &  Tbl2d(2,3)
    Avec ce code tu obtiens 3 variables tableau.
    TblLgns a une dimension, qui contient chaque lignes du fichier
    TblMots a une dimension, qui contient chaque mots du fichier

    Tbl2d a 2 dimensions, première dimension égal au nombre de ligne, deuxième dimension égal au plus grand nombre de mot dans une seul ligne.
    Ce qui explique pour un fichier qui contient ce texte,
    FichierDemo exemple
    quelques lignes pour la démonstration
    du programme de construction d'un tableau 2D
    à partir d'un
    fichier texte.
    Tbl2d(2,3) contient construction, mais Tbl2d(3,3) ne contient rien (ligne 4, colonne 4 vide dans le tableau, inexistante dans le fichier.
    La deuxième dimension et égal à 7(indice 0 à 6), correspondant à la ligne 3.

    Voilà voilà, tu nous diras ce que tu vas utiliser, tableau 1 dimension ou tableau 2 dimensions?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Par défaut
    Salut je te remercie de ta réponse j'ai choisi le tableau à 2 dimensions en fait j'avais approximativement fait la même chose mais il me manquait un truc aha.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Requête Excel pour l'extraction des données à partir des autre fichiers Excel
    Par jihed saidaoui dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/03/2015, 09h23
  2. créer un auto-extractible d'un fichier zip ou autre
    Par pinocchio dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 12/12/2006, 11h49
  3. Réponses: 3
    Dernier message: 13/04/2006, 13h57
  4. Problème d'extraction d'un fichier zip
    Par njely dans le forum Langage
    Réponses: 4
    Dernier message: 24/05/2005, 22h36
  5. Extraction d'un fichier zip
    Par dyason dans le forum Général Python
    Réponses: 2
    Dernier message: 13/07/2004, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo