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

WinDev Discussion :

Remplir champ multilignes


Sujet :

WinDev

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 90
    Points : 45
    Points
    45
    Par défaut Remplir champ multilignes
    salut tous le monde
    j'ai un probléme je veux remplir un champ (multilignes) en important les données d'un fichier (.TXT) tant qu'il rencontre la ligne qui contient la valeur (X) il arrête l'importation des lignes ,j'ai essayéer ce code mais sans vain !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Idfichiers est un entier =fOuvre(NomFichier,foLecture)
    SI Idfichiers> 0 ALORS
          LigneLue est une chaîne = fLitLigne(Idfichiers) 
          TANTQUE LigneLue<>"  "  ET LigneLue<>EOT 
     
                 TANTQUE Milieu(LigneLue,1,5)="X"
                      SAI_Champ=LigneLue+ RC
                 FIN
                 LigneLue=fLitLigne(Idfichiers)
          FIN
    FIN
    Info("Données bien transférées")

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Idfichiers est un entier =fOuvre(NomFichier,foLecture)
    SI Idfichiers> 0 ALORS
    	LigneLue est une chaîne = fLitLigne(Idfichiers) 
    	TANTQUE LigneLue<>"  "  ET LigneLue<>EOT 
     
            TANTQUE Milieu(LigneLue,1,5)="X"
            SAI_Champ=LigneLue+ RC
    FIN
    LigneLue=fLitLigne(Idfichiers)
    FIN
    FIN
    Info("Données bien transférées")
    En fait tes 2 boucles ne sont pas nécessaires et la 2e ne doit jamais s'arrêter si par malheur il y a un X en 5e position !

    Il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Idfichiers est un entier = fOuvre(NomFichier,foLecture)
    SI Idfichiers > 0 ALORS
    	LigneLue est une chaîne = fLitLigne(Idfichiers) 
    	TANTQUE LigneLue<>""  ET LigneLue<>EOT 
               SI Milieu(LigneLue,1,5) = "X" ALORS
                 SAI_Champ += [RC] + LigneLue
               FIN
               LigneLue=fLitLigne(Idfichiers)
            FIN
    FIN
    Info("Données bien transférées")
    à bientôt,

    Nicolas

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour,

    Tout d'abord, penses à utiliser la balise Code, ce sera plus lisible pour nous ^^ et aussi évite le "ça marche pas", et donnes plutôt le message d'erreur ou le comportement que tu as.

    Ensuite, ci-dessous ton code modifié par rapport à ton explication :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Idfichiers est un entier =fOuvre(NomFichier,foLecture)
    SI Idfichiers> 0 ALORS
    	LigneLue est une chaîne = fLitLigne(Idfichiers) 
    	TANTQUE LigneLue<>""  ET LigneLue<>EOT 
     
    		SI Milieu(LigneLue,1,5)="X"
    			SAI_Champ=LigneLue+ RC
    			SORTIR
    		FIN
    		LigneLue=fLitLigne(Idfichiers)
    	FIN
    FIN
    Info("Données bien transférées")
    Pour info, la boucle s'arrête dés que le caractère va être rencontré... c'est-à-dire jamais
    En effet, tu testes une chaîne d'une longueur 5 avec une chaîne d'une longueur 1.
    Autre remarque :
    Lorsque le test marchera, tu n'auras qu'une seule ligne dans SAI_Champ, la dernière ligne lue.

    PS : Nicolas a été plus rapide, et a poussé la recherche plus loin

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    ah oui autant pour moi je n'avais pas vu que la syntaxe de Milieu était inversée !

    Bien relire l'aide sur cette fonction ...

    Mettre <> "X" si tu ne veux pas voir les lignes dans ton champ et SORTIR si tu veux aussi arrêter la lecture du fichier.

    En fin de traitement, penser à fermer le fichier aussi (avant le message, ce serait mieux).

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2007, 12h32
  2. remplir champs d'une table à partir liste déroulante
    Par karidrou dans le forum Access
    Réponses: 7
    Dernier message: 08/01/2007, 16h21
  3. champ multilignes
    Par JockdiL dans le forum Access
    Réponses: 7
    Dernier message: 14/03/2006, 00h49
  4. Réponses: 1
    Dernier message: 18/12/2005, 19h19
  5. remplir champs Description dans table AS400
    Par TOPGUN89 dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 14/07/2005, 17h57

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