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

Scripts/Batch Discussion :

Comment supprimer deux 0 sur plusieurs lignes dans un fichier txt [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Comment supprimer deux 0 sur plusieurs lignes dans un fichier txt
    Bonjour,

    Je suis novice sur powershell, du coup je me permet de vous demandez un peu d'aide

    En effet je galère pour automatiser la suppression de deux 0 dans un fichier texte

    Le fichier texte provient d'un export comptable pour être importer dans le logiciel comptable, or pour l'import je dois au préalable supprimer deux 0 afin que ce dernier lise bien les informations comprises dans le fichier

    Le fichier se présente comme ceci (avec d'autres lignes présentées de la même manière)
    VEA;25/07/2019;411MARTMA;MARTINEZ Mathieu;0000000028;0;1739.26;411000000;;;
    Je souhaiterait donc supprimer les 2 premiers 0 de la chaîne 0000000028

    J'ai donc commencé à voir pour compter le nombre de ";" afin d'identifier la position de l'information et ensuite supprimer les 2 prochains caractères

    Mais je ne trouve mon bonheur nul part

    Y aurait il quelqu'un qui puisse me dire quelle fonction je pourrais utiliser pour trouver le bon ";" (le 4ème) ?

    Pour la suppression des deux 0 je pense pouvoir trouver (mais je suis preneur aussi si vous avez également)

    Grand Merci pour votre aide

    Mathieu Martinez

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    salut Martinez Albatros

    le split est une solution pour ta question

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ligne = "VEA;25/07/2019;411MARTMA;MARTINEZ Mathieu;0000000028;0;1739.26;411000000;;;"
    ($ligne.Split(";"))[4]

    l’opération total pour la reduction :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    ($ligne.Split(";"))[4].Substring(2,($ligne.Split(";"))[4].Length-2)

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse rapide

    Ça marche niquel

    Par contre la solution impose que j'indique la ligne, or pour ma part je souhaiterai lire directement le fichier TXT car j'aurai forcement beaucoup de ligne à modifier

    Du coup il faut que j'extrait chaque ligne dans une variable pour l’insérer dans le code est ce bien ça?

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    oui et là tu rentres dans le monde des boucles !
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $contenu = get-content "ton ficher"
     
    foreach ($ligne in $content) {
        ($ligne.Split(";"))[4].Substring(2,($ligne.Split(";"))[4].Length-2)
        }
    pour moi ce n'est pas la solution
    mais tu peut arriver a faire ce que tu veux avec !
    il faut que tu complète le code bien sûr !

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 196
    Points : 5 785
    Points
    5 785
    Par défaut
    Via un remplacement en expression régulière

    Tu lit le fichier
    Tu remplace le contenu
    Tu écrit le fichier
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    (Get-Content -Path "file.txt") -replace '^((?:[^;]*;){4})00(.*)$', '$1$2' | Set-Content -Path "file.txt" -Force

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses, vous êtes géniaux !

    et un GRAND merci ericlm128 ton code est parfait !!!

    Je comprend pas tout, surtout ce qu'il y a après le "replace" , mais je vais bûcher dessus

    en tout cas encore merci !!! (le changement d'ERP implique tellement de choses ... , la vous m'enlever une GROSSE épine du pied avant les congés)

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 196
    Points : 5 785
    Points
    5 785
    Par défaut
    ce qu'il y a après le "replace" , mais je vais bûcher dessus
    Tu doit chercher à comprendre les expressions régulières (regex)

  8. #8
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ah ok, je connaissait pas du tout (vraiment très novice en code ... )

    Je regarderai ça après les vacances, la en prio changement d'ERP pour demain , beaucoup à préparer

    Mais encore merci pour ton aide TRES précieuse !!!

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

Discussions similaires

  1. écrire sur plusieurs lignes dans un fichier
    Par kenny49 dans le forum Langage
    Réponses: 3
    Dernier message: 06/04/2007, 11h47
  2. Texte sur plusieurs lignes dans un TListBox
    Par BigBenQ dans le forum Composants VCL
    Réponses: 1
    Dernier message: 04/05/2006, 17h58
  3. Texte sur plusieurs lignes dans une cellule de JTable
    Par JeanECN dans le forum Composants
    Réponses: 3
    Dernier message: 10/04/2006, 17h20
  4. Réponses: 2
    Dernier message: 21/09/2005, 12h18
  5. Comment ecrire du code sur plusieurs lignes?
    Par tooneygirl dans le forum Access
    Réponses: 5
    Dernier message: 15/06/2005, 16h03

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