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 :

Ajout de blanc dans un fichier texte


Sujet :

WinDev

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut Ajout de blanc dans un fichier texte
    Salut à tous,

    une nouvelle question pour un debutant de windev que je suis.
    Je récupere des valeurs d'une base de données que j'insere dans un fichier texte.
    Ce fichier texte doit avoir un format bien défini. Par exemple, le champs prenom doit faire 20 caractere. Si un prenom n'en fait que 10, alors il faut ajouter des blanc devant le prenom.
    J'utilise donc la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TANTQUE PAS Taille(Reqmag.nummag)=Taille("Code Mag;")
    				Reqmag.nummag = " "+Reqmag.nummag
    			FIN
    mais le probleme est que l'espace entre les guillemets fait que dans le fichier texte, il ajoute 2 caractere blanc. et si je ne met pas cette espace, le programme "ne repond pas" et le fichier texte n'est pas formaté.

    Auriez vous une autre solution pour affecter des espaces à une chaine de caractere dont la longueur est aléatoire??

    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    La fonction complete() le fait
    ex:
    recherche = ("Lolo",20)
    recherche sera complète avec 16 espaces (20 - les 4 caractères de "Lolo")

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut
    merci pour la fonction complete mais elle ne convient pas tres bien car elle ajoute des caracteres apres la chaine de caractere et non avant. En existe t'il une qui le fasse?
    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    en créant une variable contenant 20 espaces-nombre de caractères du prénom:
    =>
    il faut dabord calculer le nb de caractères de prénom (c pas très propre mais bon)
    =>
    i = 0
    tant que i <21 ou pas SortirBoucle
    si sansespace(gauche(prénom,i) ="" SortirBoucle =vrai
    i++
    fin
    i--
    i = 20-i
    => on va remplir d'espace la variable
    si <> 0 alors variable=" "
    pour j = 1 à i
    variable += " "
    fin
    //EDit: on peut aussi utiliser complete(variable,i)
    => on concatène
    variable += prénom

    =============================================
    J'ai pas testé, il peut avoir des erreurs

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Pour connaître la taille d'une chaîne, il y a la fonction Taille()

    Mais il y a + simple pour compléter à gauche :
    La longueur du champ est connue puisqu'il existe déjà dans le fichier.

    Admettons un champ de 20 caractères à compléter à gauche par des espaces.
    La variable à compléter est "prenom" (déjà déclarée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    comp est une chaîne fixe sur 20 = Répète( " ",20)
    prenom=Droite(comp+prenom,20)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut
    ok merci beaucoup pour votre aide

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Plaisir
    Tiens-nous au courant

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

Discussions similaires

  1. [Batch] Ajout de lignes dans un fichier texte.
    Par Youyayoun dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 27/09/2012, 14h36
  2. [Batch] Ajouter une ligne dans un fichier texte
    Par bbor99 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 03/10/2011, 08h53
  3. Suppression des blancs dans un fichier texte
    Par GBAGO dans le forum AIX
    Réponses: 4
    Dernier message: 07/10/2009, 19h14
  4. ajout d'une donnée dans un fichier texte
    Par sorenson2 dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2007, 12h41
  5. Sauvegarde et ajout de données dans un fichier texte
    Par hanane78 dans le forum MATLAB
    Réponses: 8
    Dernier message: 22/05/2007, 13h07

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