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

Langage Perl Discussion :

Parcours de fichiers - Condition de Remplissage


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut Parcours de fichiers - Condition de Remplissage
    Bonjour à tous,

    Me revoilà avec une nouvelle question sur les fichiers et leurs manipulations.

    J'ai deux fichiers A et B. Le Fichier A se décompose comme suit :
    Champ1;Champ2;Champ3;Champ4;Champ5
    Le Fichier B contient plusieurs lignes diverses et variées.

    Ce que je veux faire, c'est de parcourir B en regardant si le Champ2 (A) existe, si oui, je concatène, en début de la ligne B le Champ1 et en fin de ligne le Champ5 et je redirrige dans un fichier C.
    Celà j'y arrive sans problème.

    Là ou le bat blaisse, c'est lorsque je dit "Si je ne trouve pas le Champ2 dans A alors je crée une ligne contenant Champ1XYZChamp2, où XYZ est une chaine composée de 232 espaces que je redirrige dans le Fichier C, ET je reprend la ligne de B en cours de lecture avec Champ1="00000" et Champ5="XXXXXXXXXXX" que je redirrige dans le Fichier C.

    Voici le code. Je débute en Perl, ne m'en veuillez donc pas trop si le code vous semble "pourrit".

    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
    46
    47
    48
    49
    50
     
     
    $TexteRecup="";
    $Var=0;
     
    open (T2DIRFile,"Fichier_B") or die "Impossible d'ouvrir le fichier T2Dir\n";
    open (DEST2, ">Fichier_C") or die "Impossible d'ouvrir le fichier de sortie\n";
     
    for($i=0;$i<233;$i++)
    {
    	$Space = $Space." ";
    }
     
     
    while ($LigneT2DIR = <T2DIRFile>)
    {
    	open (DEST1, "Fichier_A");
    	while( $LigneDEST=<DEST1> )
    	{
    	  my @DEST= split(/;/, $LigneDEST);
    	  $ABE = $DEST[5]; 
    	  $BANK = $DEST[0]; 
    	  my $recherche = $DEST[1]; 
    	  if( $LigneT2DIR =~ /$recherche/ )
    	  {
    	  	$Var =1;
                              last;
    	  }
    	}
    	if ($Var == 1)
    	{
    	  	$LigneT2DIR =~ s/\n//g;
    	  	$TexteRecup = $BANK.$LigneT2DIR.$ABE;
    	  	print DEST2 $TexteRecup;
    	  	$Var = 0;
    	}
    	else
    	{
    	  	$LigneT2DIR =~ s/\n//g;
    	  	$TexteRecup = "00000".$LigneT2DIR."XXXXXXXXXXX\n";
    	  	$TexteABE = $BANK.$Space.$ABE."\n";
    	  	print DEST2 $TexteRecup;
    	  	print DEST2 $TexteABE;
    	}
    	close(DEST1);
    	$TexteRecup="";
    	$TexteABE="";
    }	  
     
    close(T2DIRFile);
    Si vous pouviez m'aider.

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Le code a l'air correct (même s'il pourrait être amélioré), quel est le problème ?

    --
    Jedaï

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Arf vi je n'ai pas dit ce qui n'allait pas

    Problème 1:
    Et bien en fait il me rajoute après chaque ligne de B :
    8999+Espace de 232+XXXXXXXXXXX
    8999 étant le champ 1 de la dernière ligne A

    Problème 2:
    EDIT : Pas de pbroblème 2

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Ah oui chose curieuse aussi, de temps en temps il remplace le Champ1 par "E" suivit de 4 espaces

Discussions similaires

  1. [WB14]Parcours de fichier avec condition et tri
    Par Nic550 dans le forum WebDev
    Réponses: 12
    Dernier message: 09/09/2009, 12h49
  2. Fichier et Conditions de Remplissage
    Par MarcCC dans le forum Langage
    Réponses: 0
    Dernier message: 30/01/2008, 11h13
  3. Parcours de fichiers et condition d'arrêt
    Par DaXou45 dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2006, 10h32
  4. Parcours de fichier
    Par ZzTop dans le forum Linux
    Réponses: 5
    Dernier message: 18/11/2004, 16h47
  5. [LG]Lenteur de parcours de fichier
    Par YéTeeh dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2003, 22h57

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