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

Applications et environnements graphiques Discussion :

pb formatage d'un fichier txt avec awk ou SHELL en géneral


Sujet :

Applications et environnements graphiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut pb formatage d'un fichier txt avec awk ou SHELL en géneral
    Bonjour,

    Je ne connais pas bien les shell et j'ai un fichier à formater.
    en fait je récupère un champs de
    type number(12,2) d'une base de donnée oracle. Je dois formater ce
    champs en supprimant la virgule et en réservant les deux derniers
    caractères au chiffre se trouvant après la virgule et les dix premiers
    au chiffre précédant la virgule. Si le number ne tient pas sur 12 caractère, je le compléte avec des 0
    Par exemple (2 --> 000000000200
    2,5 --> 000000000250
    et 2,55 --> 000000000255)

    voici un exemple de mon fichier sortie que je dois formater (le séparateur entre les champs est ';'); le champs que je vais formater est le champs numéro 5

    010;S;26/09/2008; ;222,7 ;0


    Merci pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Points : 42
    Points
    42
    Par défaut
    Sans etre super fort en perl, j'ai fait un petit script qui effectue ce que tu souhaite :

    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
     
    #! /usr/bin/perl
    use strict;
     
    my $_ligne = "010;S;26/09/2008; ;222 ;0 ";
    my $_resultat = "";
    my $_cpt = 0;
     
    my @_buffer = split ( /\s*;\s*/ , $_ligne );
    my @_field = split ( /\s*,\s*/ , @_buffer[4] );
     
    while ( $_cpt + length($_field[0]) != 10 ) {
      $_resultat .= 0;
      $_cpt++;
    }
     
    $_resultat .= $_field[0];
     
    if ( exists ($_field[1]) ) { 
      $_resultat .= $_field[1];
      $_resultat .= 0 if ( length($_field[1]) == 1 );
    }
    else {
      $_resultat .= "00";
    }
     
    print "$_resultat \n";
    Apres il faut faire une boucle pour lire le fichier source ligne par ligne et rediriger le resultat vers un autre fichier. :p

Discussions similaires

  1. Modifier un fichier txt avec FSO?
    Par flo456 dans le forum ASP
    Réponses: 6
    Dernier message: 25/10/2005, 22h16
  2. probleme d'import de fichier txt avec des tab
    Par lecureuil dans le forum Access
    Réponses: 4
    Dernier message: 23/08/2005, 19h22
  3. Creer un fichier txt avec la date du jour
    Par quarkz dans le forum Débuter
    Réponses: 8
    Dernier message: 28/07/2005, 17h29
  4. Réponses: 5
    Dernier message: 09/01/2005, 19h54
  5. Pb import fichier txt avec lignes de longueurs diverses
    Par zebulon90 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/12/2004, 08h32

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