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

Développement de jobs Discussion :

Lire un mot dans un fichier texte


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Femme Profil pro
    Geomaticienne
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Geomaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Lire un mot dans un fichier texte
    Bonjour,

    Je souhaite développer un job Talend qui va lire un fichier texte à la recherche d'un mot, par exemple "test".
    Si il existe, je souhaite mettre un tdie, "Il existe", si il n'existe pas, un Twarn "Il n'existe pas".

    J'ai commencé des tests mais je ne sais pas si je suis sur la bonne voie?

    tfileInputFullRow (mon .txt) --> row --> tSortRow --> if (StringHandling.INDEX("row_1.line","test") != -1 ) --> twarn "Il n'existe pas"


    Sauriez vous comment faire à partir de ça ou d'une autre façon?

    Merci

    Sophie

  2. #2
    Membre à l'essai
    Femme Profil pro
    Geomaticienne
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Geomaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Oups, doublon...

  3. #3
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    bonjour
    les doublons se situent à quel niveau. tu peux utiliser un tuniqRow pour supprimer les doublons.
    je propose donc que tu utilise le tuniqrow après le tsortRow.voilà

  4. #4
    Membre à l'essai
    Femme Profil pro
    Geomaticienne
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Geomaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Re
    Bonjour,

    Merci pour cette réponse mais je n'ai pas de doublons, je précise juste que cette discussion est en doublon.
    Je cherche le mot test dans mon fichier texte. Impossible de trouver la ligne de code dans le if pour avoir ma recherche.

    Donc j'ai un tfileinputfullrow (txt) --> row1 --> tflowtoiterate --> if (string globalgetmap.Index ("row1.line"."test") --> tmsgbox (test existe).

    Une idée pour la ligne de code du if pour trouver le mot test dans mon txt?

    Merci.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Geomaticienne
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Geomaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    J'ai vraiment besoin d'un coup de main pour rechercher le mot "Test" dans le if.

    Plusieurs pistes:

    StringHandling.INDEX(row1.line,"test") != -1

    (String)globalMap.get("row1.line")=="test"

    Merci pour votre réponse, je suis complètement bloquée sur le code....

    Sophie

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Salut,

    Tu peux essayer sa : row1.line.contains("<test>")
    Ca a marché dans mon cas

  7. #7
    Membre à l'essai
    Femme Profil pro
    Geomaticienne
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Geomaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci beaucoup pour votre réponse.
    Malheureusement j'ai essayé de rentrer cette ligne dans mon if mais il me renvoie un false alors que "test" existe...

    Qu'avez vous fait exactement dans votre job pour que cela fonctionne chez vous?

    Ici mon row1.line provient de la colonne que j'ai crée entre mon tFileInputFullRow et mon tFlowtoIterate.

    Nom : test.png
Affichages : 243
Taille : 15,1 Ko

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Il me semble par rapport au Screenshot, qu'il manque les <>, il me semble parce qu'on voit pas très bien

  9. #9
    Membre chevronné

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Points : 1 894
    Points
    1 894
    Par défaut
    je copie/colle mon autre réponse :
    plusieurs options (j'ai retiré le tSortRow car je ne vois pas à quoi il sert mais tu peux le remettre) :

    Option 1 : tFlowToIterate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                                                                      +-- if1 --> tDie
    tfileInputFullRow -- main --> tFlowToIterate -- iterate --> tJava +
                                                                      +-- if2 --> tWarn
    dans le tJava: rien (il ne sert qu'à faire un lien)

    le if1 vaut un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main.row.matches(".*\\btest\\b.*")
    avec main.row qui provient du tFlowToIterate
    .*\\btest\\b.* la regexp qui va bien pour tester la présence de ton mot

    le if2 sera l'inverse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !main.row.matches(".*\\btest\\b.*")
    Option 2 : tFilterRow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                                                                        +-- if1 --> tDie
    tfileInputFullRow -- main --> tFilterRow -- onComponentOK --> tJava +
                                                                        +-- if2 --> tWarn
    Ici, le if1 sera plutôt du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Integer)globalMap.get("tFilterRow_1_NB_LINE_OK")) > 0
    Le filtre servant à retrouver les lignes qui correspondent à ta recherche : tu peux utiliser une regexp du même style ou faire le filtre classique.

    et le if2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Integer)globalMap.get("tFilterRow_1_NB_LINE_OK")) == 0

  10. #10
    Membre à l'essai
    Femme Profil pro
    Geomaticienne
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Geomaticienne
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Solution
    Bonjour,

    Un énorme merci pour cette réponse complète, également copiée dans l'autre discussion en doublon "Vérifier un mot dans un fichier texte".

    Je ne sais pas si ta solution fonctionne mais entre temps j'ai réussi.

    Voici ma solution :

    tFileInputFullRow --> Row1 (création d'une colonne "line" dans le schéma) --> tFlowtoIterate --> Iterate --> tRowGenerator (colonne "line") --> if ( " StringHandling.INDEX(row1.line,"test") != -1" ") --> tdie ("Le mot test existe").

    Bonne continuation,

    Sophie

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

Discussions similaires

  1. Ecrire & Lire des énumérés dans un fichier Texte
    Par WebPac dans le forum Langage
    Réponses: 8
    Dernier message: 18/06/2008, 10h04
  2. Réponses: 10
    Dernier message: 29/04/2006, 10h40
  3. Trouver un mot dans un fichier texte
    Par godik dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 10/03/2006, 14h31
  4. Réponses: 4
    Dernier message: 16/12/2005, 17h43
  5. lire un mot dans un fichier
    Par ibtisss dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2005, 12h14

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