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

VB.NET Discussion :

Aligner en colonne


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut Aligner en colonne
    Salut,

    dans mon code j utilise ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For irow = Startevent(EventID) To Endevent(EventID)
                    For ncol = 0 To (nbrColumn - 1)
                        Redfile.Write(Tablebestyears(irow, ncol))
                        Redfile.Write("  ")
                    Next
                    Redfile.WriteLine()
                Next
    ce qui me donne par exemple :

    3080 2 3 9 0.2
    3080 2 3 10 0
    3080 2 3 11 0
    3080 2 3 12 0
    3080 2 3 13 0
    3080 2 3 14 0
    3080 2 3 15 0
    3080 2 3 16 0.5
    3080 2 3 17 3.1
    3080 2 3 18 3.1
    3080 2 3 19 3.1
    3080 2 3 20 2.1
    3080 2 3 21 0.6
    3080 2 3 22 0
    3080 2 3 23 0
    3080 2 4 0 0
    3080 2 4 1 0
    3080 2 4 2 0
    3080 2 4 3 0
    3080 2 4 4 0.4

    ce que je voudrais faire, c aligner a gauche chacune de mes colonnes. Mais j avoue que je n ai pas trouve. Si quelqu un sait comment faire.

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 60
    Par défaut
    avec un tableau ca marche pas ??

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Pardon ?

    Mes donnees sont dans un tableau. J ecris dans un fichier .txt

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 60
    Par défaut
    je voulais parler d'un tableau de type Html <table><td><tr>.... Ca te permettrai de faire des alignements.
    Mais dans un fichier .txt je sais pas trop comment ca va reagir.

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 124
    Par défaut
    Citation Envoyé par Jere76
    je voulais parler d'un tableau de type Html <table><td><tr>.... Ca te permettrai de faire des alignements.
    Mais dans un fichier .txt je sais pas trop comment ca va reagir.
    Essaye plutôt avec des Vbtab a la place des Redfile.Write(" ")..

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Ha oui voila !

    me semblait bien que j avais deja utilise un truc tout con mais bien pratique pour faire ca ! Merci Remy.

    Mon code est maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For irow = Startevent(EventID) To Endevent(EventID)
                    For ncol = 0 To (nbrColumn - 1)
                        Redfile.Write(Tablebestyears(irow, ncol))
                        Redfile.Write(vbTab)
                    Next
                    Redfile.WriteLine()
                Next
    et il donne par exemple :

    3080 1 25 8 0
    3080 1 25 9 0
    3080 1 25 10 0
    3080 1 25 11 0
    3080 1 25 12 0
    3080 1 25 13 1.7
    3080 1 25 14 2.2
    3080 1 25 15 2.2
    3080 1 25 16 0.5

    Encore merci.

    Tant que j y suis, j aurais une autre question un peu similaire. Y a t il un moyen de definir que tel nombre doit etre place entre la colonne tant et tant et aligne a droite dans cette fenetre ?

  7. #7
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 124
    Par défaut
    Et si tu fait un truc genre :
    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
     
    For irow = Startevent(EventID) To Endevent(EventID)
                    For ncol = 0 To (nbrColumn - 1)
                        Redfile.Write(Tablebestyears(irow, ncol))
                        Select Case ncol
                        case 0
                        Redfile.Write(vbTab)                     
                        case 1
                        Redfile.Write(vbTab & vbtab)
                        case 2
                        Redfile.Write(vbTab)
                        end select
                        Redfile.Write(vbTab)
                    Next
                    Redfile.WriteLine()
                Next

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Si je fais ce que tu dis remy, j ai donc :

    2 tabulations entre le premier et second nombre,
    3 tab entre le 2 et 3ieme
    2 entre le 3 et 4ieme
    et enfin 1 tab entre le 4 et 5 ieme

    Ce que tu proposais remplacer : Redfile.Write(" ") par Redfile.Write(vbTab). C est exactement ce que j essayais de retrouver. J avais utilise ca par le passe et je n arrivais plus a me rappeler du mot cle vbTab .

    Ma deuxieme question :
    Tant que j y suis, j aurais une autre question un peu similaire. Y a t il un moyen de definir que tel nombre doit etre place entre la colonne tant et tant et aligne a droite dans cette fenetre ?
    Est differente. Je n ai jamais fait ca et ne pense pas que la solution passe par Vbtab. Je me disais que ptet qu il faut que je definisse des string de longueur defini et que je convertisse mes valeurs en string avant de les ecrires.

    (en fait ce que je dois faire c produire un fichier txt qui vas servir d input dans un logiciel commercial. Donc il faut que je mette les donnees dans les bonnes colonnes pour que le logiciel puisse les lire.

  9. #9
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 124
    Par défaut
    bah je vois pas trop ce que tu veux faire alors..
    Faut que je me remette au café..

  10. #10
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Arf, suis surement pas assez clair.

    Ce que je veux faire c :

    La colonne 1 a 5 doit stoker le numero ID de l evenement
    la colonne 7 et 8 le jour
    8 et 9 le mois
    10 a 13 l annee
    21 a 25 un nombre qui represente une information quelconque
    26 a 30 une autre information ....

    arf, suis pas sur d etre plus clair en fait

  11. #11
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par Slumpy
    (en fait ce que je dois faire c produire un fichier txt qui vas servir d input dans un logiciel commercial. Donc il faut que je mette les donnees dans les bonnes colonnes pour que le logiciel puisse les lire.
    Il me semble que dans cette optique, le fichier à longueur fixe, c'est un peu old school.
    Un fichier délimité est plus simple à faire, donc à maintenir, et peut servir de source de données sans problèmes. Le tout est de choisir un séparateur correct.
    Personnellement, j'aime bien le "#"

  12. #12
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Citation:
    Slumpy a écrit :
    (en fait ce que je dois faire c produire un fichier txt qui vas servir d input dans un logiciel commercial. Donc il faut que je mette les donnees dans les bonnes colonnes pour que le logiciel puisse les lire.

    Il me semble que dans cette optique, le fichier à longueur fixe, c'est un peu old school.
    Un fichier délimité est plus simple à faire, donc à maintenir, et peut servir de source de données sans problèmes. Le tout est de choisir un séparateur correct.
    Personnellement, j'aime bien le "#"
    Je ne developpe pas le logiciel commercial, je dois juste produire les donnees qui seront utilise dans le logiciel, et d apres ce que j ai compris, le fichier doit etre construit avec ce genre d idee. Col 1-5 tel truc, 7-8 tel truc ...

  13. #13
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 124
    Par défaut
    Si j'ai bien compris (deux double café à mon actif ) tu veux etre sur que dans la premiere colonne (par exemple) ca soit un type particulier (genre date)..
    C'est ca ou je passe le café en intra ?

  14. #14
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    C'est ca ou je passe le café en intra ?
    heu ... va falloir songer a l intra

    Je rereformule mon probleme LOL :

    Imaginons que j ai une variable TOTO qui est un vecteur contenant :

    TOTO(0)=1.23
    TOTO(1)=15.245
    TOTO(2)=165648

    je voudrais que c nombres soient copie dans un fichier .txt entre les colonnes 7-15. Avec les valeurs alignees a droite, c est a dire pour toto(0) le 3 dans la colonne 15, pour toto(1) le 5 dans la colonne 15 et pour toto(2) le 8 dans la colonne 15.

    C est plus clair chef ?

    (desole pour les accents, clavier powa !)

  15. #15
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Tu peux utiliser la méthode générique ToString qui prend un format en argument.
    Ensuite, à toi de trouver le bon format suivant ta donnée.

    Un début de piste : http://msdn2.microsoft.com/en-us/lib...21(VS.71).aspx

  16. #16
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Ok je crois crois que j ai la soluce ^^ :

    If you want a fixed-length field of 7 chars, try

    X.ToString().PadLeft(7)



    Note that if ToString produces more than 7 characters, then PadLeft will do nothing. So you will still have more than 7 chars.

    If that's a possibility with your data, you need to think how you want to truncate.

    One option

    DIM XStr as string, XOut as string
    XStr=X.ToString()
    IF XStr.Length > 7 THEN
    XOut=XStr.Left(7) ' Use first 7 chars
    ELSE
    XOut=XStr.PadLeft(7)
    END IF

    If you have to use the same logic in several places, write your own function to incorporate the logic.
    Merci a tous

  17. #17
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Arf, j ai un nouveau probleme.

    imaginons que j ai deux entiers X egal a 1 et Y a 15

    Si j ustilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X.ToString().PadLeft(2) et Y.ToString().PadLeft(2)
    Je vais obtenir :
    1 (pour X)
    15 (pourY)

    Comment faire si je veux :
    01 (pour X)
    15 (pour Y)

    Hein comment faire ?

    Pour l instant je fais comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If Tablebestyears(Startevent(EventID), 1) < 10 Then
                    Redfile.Write("0")
                    Redfile.Write(Tablebestyears(Startevent(EventID), 1).ToString.PadLeft(1))
                ElseIf Tablebestyears(Startevent(EventID), 1) < 13 Then
                    Redfile.Write(Tablebestyears(Startevent(EventID), 1).ToString.PadLeft(2))
                Else
                    MsgBox("problem in month determination")
                End If
    mais c un peu bourrin comme methode je pense

  18. #18
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760

  19. #19
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    jml94 t as pas encore plus court ?

    LOL grand merci, je peux virer mon code a deux balles

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

Discussions similaires

  1. [String] Aligner en colonne
    Par portu dans le forum Delphi
    Réponses: 4
    Dernier message: 12/12/2006, 07h24
  2. problème alignement de colonnes d'un tableau
    Par freija dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/08/2006, 15h34
  3. Alignement de Colonnes d'une TStringGrid
    Par BigMike dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/06/2006, 10h22
  4. alignement de colonnes sur un select
    Par jeanpaul702 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 30/05/2006, 11h08
  5. Alignement de colonne d'un tableau
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 05/04/2005, 21h17

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