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 :

Mettre à jour un fichier en fonction d'un autre


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Points : 34
    Points
    34
    Par défaut Mettre à jour un fichier en fonction d'un autre
    Bonjour

    Je suis trés novice en Perl. Mon probléme est que j'au une liste de positions c'est à dire des portefeuilles avec leur numéro de centre(regroupement de ptf) et d'autres données représentées par des colonnes.

    J'ai une deuxiéme liste avec tous les portefeuilles qui sont au nombre de 22000 et aussi leurs centres qui sont au nombre de 600, c'est à dire que dans un centre j'ai plusieurs portefeuilles.

    Ce que je voudrai faire c'est prendre la premiere liste et copier toutes les données de cette liste mais en prenant soin de remplacer les portefeuilles et les centres qui sont dans la premiére liste par les portefeuilles et les centres qui sont dans la deuxiéme liste(Je ne le fais pas pour tous les ptf ce qui sont déjà dans la liste 1 je n'y touche pas je prends juste le delta).

    Et je voudrai sortir un fichier par centre avec les portefuilles correspondant au centre et seulement à ce centre.

    Un centre c'est un ensemble de ptf.

    C'est trés urgent et vu la volumétrie plus de 8millions d'enregistrements on m'a dit que perl est le meilleur moyen.

  2. #2
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Bonjour, peux tu nous donner un exemple pour tes deux fichiers ainsi que ce que tu aimerais obtenir.
    Sans ça on ne peut pas t'aider à faire le script...
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Merci de ta réponse

    Voici un bout du premier fichier
    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
     
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0
    Voici un exemple du second fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    portefeuille_id|centre|
     ------------|---------|
    |XXXXX   |YYY       |
    |XXXXXX |YYY     |
    |ZZZZZZZZZ |VVV |
    |MMMMM   |VVV   |
    |QMLKKK   |UUUU     |

    Et ce que je voudrai avoir c'est pour chaque centre les portefeuilles qui correspondent cad pour le centre 50M
    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
     
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6560	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6598	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	6541	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	874	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0	
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	485	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	4155	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	4155	0	0	0		
    XXX	MM	QQ	OOOOOOOOOOO	DOL	G	4155	0	0	0
    Et ceci pour chaque centre avec les bons portfeuilles qui correspondent. Un portefeuille n'appartient qu'à un seul centre donc je ne dois pas avoir un même portefuille dans deux centres différents.

    Je voudrai aussi que la création des fichiers soit automatique dans le script pour chaque centre.

    merci de vos coup de pouces.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    je comprends pas tres bien ce que tu veux faire, peux tu reexpliquer? Surtout comment fais tu le lien entre tes deux fichiers pour obtenir tes fichiers finaux?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonjour Djibril

    Voici mon script modifié

    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
     
     
    open(FILE, "<benResultPtfCentre.txt") || die "Erreur E/S : $!\n";
     
     
    %centre;
    %centreMap;
     
    while ($ligne = <FILE>)
    {
    	my @allData = split(' ',$ligne);
    	if(!defined($centre{$allData[1]}))
     		{
    			#print "adding $allData[0] to centres \n";
    			$centre{$allData[1]} = $allData[1] 
    		}
    }
    close FILE;
     
    open(MAPPTF, "<ShortTIA.ELI") || die "Erreur E/S : $!\n";
    while($ligneMap = <MAPPTF>) 
    	{
     
    		my @allDataMap = split(' ',$ligneMap);
    		#my @allDataMap = $ligneMap;
    		#print "$ligneMap";
     
    		$centreMap{$allDataMap[3]} = $allDataMap[3] ;
     
    		open(OUTPUTFILEMAP, ">>$allDataMap[3].txt") || die "Erreur E/S : $!\n";
     
    		print OUTPUTFILEMAP @allDataMap ,"\n";
    		#print OUTPUTFILEMAP "\n";
    		close OUTPUTFILEMAP;
    	}
     
     
    print "Fin\n";

Discussions similaires

  1. [Toutes versions] Mettre a jour un fichier excel par rapport à un autre
    Par david14120 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/04/2014, 23h30
  2. Trigger - Mettre à jour un champ en fonction d'un autre
    Par benharperr dans le forum PL/SQL
    Réponses: 6
    Dernier message: 10/03/2009, 11h01
  3. Mettre a jour un champ en fonction d'un autre
    Par Falcdyr dans le forum IHM
    Réponses: 2
    Dernier message: 14/04/2008, 14h29
  4. Mettre a jour un programme en fonction de l'utilisateur
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/05/2007, 10h33
  5. mettre a jour le fichier de mapping hibernate
    Par solawe dans le forum Hibernate
    Réponses: 3
    Dernier message: 13/12/2006, 21h14

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