Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 1
    Points : 0
    Points
    0

    Par défaut Récupérer des lignes d'un fichier txt dans un autre

    Bonjour,

    Je cherche à récupérer des champs de toutes les lignes d'un fichier .txt.
    les lignes commencent par 022, 033:

    022;Paris;020312;toto;00000123;123;
    033;1234560;titi;tutu;01022012;

    Je cherche a les lister dans un nouveau fichier .txt avec un positionnement pour chaque champs:
    1er champ sur 3 car
    2eme champs sur 06car
    03 champs sur 11car ect ect

    C'est la partie récupération des lignes qui m'interressent.
    Une idée?

    Merci.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2008
    Messages : 100
    Points : 119
    Points
    119

    Par défaut

    Citation Envoyé par Boulboul22 Voir le message
    Bonjour,

    Je cherche à récupérer des champs de toutes les lignes d'un fichier .txt.
    les lignes commencent par 022, 033:

    022;Paris;020312;toto;00000123;123;
    033;1234560;titi;tutu;01022012;

    Je cherche a les lister dans un nouveau fichier .txt avec un positionnement pour chaque champs:
    1er champ sur 3 car
    2eme champs sur 06car
    03 champs sur 11car ect ect

    C'est la partie récupération des lignes qui m'interressent.
    Une idée?

    Merci.
    Salut,

    Vite fait comme ça

    Code :
    1
    2
    3
    4
    5
    6
    7
    $a = Get-Content (fichier.txt)
    Foreach ( $line in $a ) {
       if ($line -match "^[022]|[033]" ) {
          $line_splitted = $line.split(";")
          Write-Host $line_splitted[0] $line_splitted[3] $line_splitted[5] 
       }
    }
    Get-Content va lire tout le fichier et stocker toutes les lignes sous forme de tableau.
    Apres tu fais un match en utilisant les regex.
    Je suis une quille en regex donc pas sur que ça match quoi que ce soit comme ça, mais l'idée est là
    Ensuite tu split le tout pour mettre chaque élément entre deux ; dans un les parties d'un tableau et le tour est joué.

    A mon avis ton fichier texte est au format CSV ? Tu dois pouvoir trouver ton bonheur de manière moins compliquée avec Import-Csv


    Voili Voilou

  3. #3
    Rédacteur


    Inscrit en
    janvier 2003
    Messages
    6 444
    Détails du profil
    Informations forums :
    Inscription : janvier 2003
    Messages : 6 444
    Points : 14 451
    Points
    14 451
    Billets dans le blog
    1

    Par défaut

    Salut,
    Citation Envoyé par SiSMik Voir le message
    mais l'idée est là
    Oui, par exemple :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $T= @(
    "022;Paris;020312;toto;00000123;123",
    "033;1234560;titi;tutu;01022012",
    "2;1234560;titi;tutu;01022012",
    "0;1234560;titi;tutu;01022012",
    "3;1234560;titi;tutu;01022012"
    )
     
    $T|Where {$_ -match "^[022]|[033]" }
    #ou 
    $T|Where {$_ -match "^(022|033)" }
    Tu construis une étendue de caractères avec [], [ 0 ou 2 ou 2] ou [0 ou 3 ou 3], là où il faut un groupe de caractères () ('022' ou '033').

    On peux aussi l'écrire comme ceci :
    Code :
    1
    2
     
    $T|Where {$_ -match "^022|^033" }
    [edit]
    Citation Envoyé par SiSMik Voir le message
    A mon avis ton fichier texte est au format CSV ? Tu dois pouvoir trouver ton bonheur de manière moins compliquée avec Import-Csv
    Dans cas cas il faut ajouter les noms de colonnes au début du fichier

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •