Code javascript dans pentaho data integration
Fermé
paulaz
Messages postés
1
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
22 novembre 2012
-
22 nov. 2012 à 17:09
ngounou25 Messages postés 96 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 5 juillet 2013 - 22 nov. 2012 à 18:32
ngounou25 Messages postés 96 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 5 juillet 2013 - 22 nov. 2012 à 18:32
A voir également:
- Code javascript dans pentaho data integration
- App data - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
1 réponse
ngounou25
Messages postés
96
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
5 juillet 2013
4
22 nov. 2012 à 18:32
22 nov. 2012 à 18:32
Salut,
Je te suggère de créer une classe "Client", avec comme attributs 3 chaînes de caractères représentant respectivement : le nom, le prénom et l'identifiant du client, après quoi, tu créeras un attribut supplémentaire de taille dynamique (un ArrayList<String> par exemple) dans lequel tu enregistreras tous les comptes du client donné.
Dans ton programme principale, tu créera une nouvelle structure dynamique pour stocker les clients du fichier source (ArrayList<Client>).
L'astuce ici sera de lire le fichier source en filtrant directement les doublons. Ainsi, à l'écriture, y aura rien de spécial à faire (à par réaliser l'écriture proprement dite). A chaque fois que tu liras donc une nouvelle ligne de ce fichier source, tu parcourras ta liste de clients et :
- si tu trouve un client associé à cette ligne, alors tu ajoute simplement le compte à la liste de ses comptes ;
- sinon, c'est un nouveau client : tu l'ajoute à ta liste de clients.
Apercu tu code principale (pour la lecture sélective) est donc le suivant :
Ta liste sera donc sans doublon, et ton nouveau problème sera de la rendre persistante dans ton fichier destination ... Problème que j'estime beaucoup plus abordable :).
RQ : On peut aisément faire mieux (sur le plan complexité). Mais, cette solution, je l'estime assez aisément assimilable ;-) .
Je te suggère de créer une classe "Client", avec comme attributs 3 chaînes de caractères représentant respectivement : le nom, le prénom et l'identifiant du client, après quoi, tu créeras un attribut supplémentaire de taille dynamique (un ArrayList<String> par exemple) dans lequel tu enregistreras tous les comptes du client donné.
Dans ton programme principale, tu créera une nouvelle structure dynamique pour stocker les clients du fichier source (ArrayList<Client>).
L'astuce ici sera de lire le fichier source en filtrant directement les doublons. Ainsi, à l'écriture, y aura rien de spécial à faire (à par réaliser l'écriture proprement dite). A chaque fois que tu liras donc une nouvelle ligne de ce fichier source, tu parcourras ta liste de clients et :
- si tu trouve un client associé à cette ligne, alors tu ajoute simplement le compte à la liste de ses comptes ;
- sinon, c'est un nouveau client : tu l'ajoute à ta liste de clients.
Apercu tu code principale (pour la lecture sélective) est donc le suivant :
while(/* fin du fihchier non atteind */) { 1. String ligne = /* Lire la ligne courante */ 2. La transformer en tableau de caractères (String[] tabClient = ligne.split(" ", ' ')) 3. Chercher le client en supposant qu'il n'existe pas (Boolean existe = false) for(Client client : listeClients) { if(client.getIdClient.equals(tabClient[2])) { // le client est déjà enregistré dans ta liste existe = true // tu ajoutes simplement le compte parmi ses comptes client.getComptes().add(tabClient[3]) } } if(! existe) { // le client n'est pas encore enregistré dans ta liste // c'est un nouveau client : tu l'ajoute listeClients.add(new Client(tab[0], tab[1], tab[2], tab[3])) } } // end while
Ta liste sera donc sans doublon, et ton nouveau problème sera de la rendre persistante dans ton fichier destination ... Problème que j'estime beaucoup plus abordable :).
RQ : On peut aisément faire mieux (sur le plan complexité). Mais, cette solution, je l'estime assez aisément assimilable ;-) .