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

Windows Forms Discussion :

Génerer un fichier txt à partir d'une application vb.net [Débutant]


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Génerer un fichier txt à partir d'une application vb.net
    Bonjour,

    je veux exporter les données qui sont stockées sur DataGridView dans un fichier txt.
    Le problème : je veux exporte les données en tabulation, et je veux aussi préciser la longueur et le nombre de caractère pour chaque colonne.

    J'ai 4 colonnes :
    • Colonne 1 (n° compte) : 24 caractères
    • Colonne 2 (nom) : 36 caractères
    • Colonne 3 (montant) : 10 caractères
    • Colonne 4 (virement) : 8 caractères


    Merci d'avance,
    Images attachées Images attachées   

  2. #2
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    La première chose a faire est du padding autour de chaque element, pour etre sur de leur longueur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CEL0 = DataGridView1.Rows(i).Cells(0).Value.ToString().PadRight(24)
    CEL1 = DataGridView1.Rows(i).Cells(1).Value.ToString().PadRight(36)
    CEL2 = DataGridView1.Rows(i).Cells(2).Value.ToString().PadRight(10)  'je ne rajoute pas .00, tu t'en occuperas!
    CEL3 = DataGridView1.Rows(i).Cells(3).Value.ToString().PadRight(8)
    Ensuite, le caractère de tabulation est \t:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CEL0+"\t"+CEL1+"\t"+CEL2+"\t"+CEL3
    devrait te retourner ton texte correctement formaté.

    Attention, si la chaîne est plus longue que le paramètre passe a PadRight, le retour sera égal a la chaîne initiale.
    Par exemple (en C# mais pareil en VB.NET):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    string mystring = "ceci est un texte de 34 caracteres";
    string mypaddedstring = mystring.PadRight(40, '-');
    Console.Writeline(mypaddedstring)
    mypaddedstring = mystring.PadRight(20);
    Console.Writeline(mypaddedstring)
     
    // output = 
    //ceci est un texte de 34 caracteres------ 
    //ceci est un texte de 34 caracteres
    Il faut donc faire attention a ce que les chaines de départ ne soient pas plus longues que ce que tu veux en sortie (20, 36, 10 et 8 caractères respectivement)


    EDIT:
    A la réflexion, une fois que les valeurs ont le bon padding, pas besoin d’insérer des tabulations. Il suffit de lire les portions de ligne.
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Mon problème c'est que chaque colonne à un nombre défini de caractère (ex :N° COMPTE= 24 caractères, Nom = 36 caractères).
    Par contre pour le nom le nombre de caractère est défini à 36 caractères. Or évidement les noms ne sont pas tous de la même longueur (en nombre de caractère).

    Ma question : comment compléter une cellule pour quelle fasse obligatoirement 36 caractères quelques soit la valeur (alphanumérique) de la cellule (que se soit ( M. YIN ) ou ( M. SOUFIANE ) ?)

    Merci d'avance !

  4. #4
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    Citation Envoyé par soufianedeveloper Voir le message
    Ma question : comment compléter une cellule pour quelle fasse obligatoirement 36 caractères quelques soit la valeur (alphanumérique) de la cellule (que se soit ( M. YIN ) ou ( M. SOUFIANE ) ?)
    Justement, c'est la fonction PadLeft ou PadRight qui va faire cela: cela va rajouter le nombre de caractères qu'il faut pour atteindre le bon nombre de caractères.

    Colle ca dans une application console, tu comprendras:

    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
        Public Function GetFormattedString(value As String, length As Integer) As String
            If length > value.Length Then
                Return value.PadRight(length)
            Else
                Return value.Substring(0, length)
            End If
        End Function
     
        Sub Main()
            Dim test As String = "abcdefghijklmnopqrstuvwxyz"
            Console.WriteLine(" 5 car: " + GetFormattedString(test, 5))
            Console.WriteLine("10 car: " + GetFormattedString(test, 10))
            Console.WriteLine("15 car: " + GetFormattedString(test, 15))
            Console.WriteLine("30 car: " + GetFormattedString(test, 30))
            Console.ReadLine()
        End Sub
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci Beaucoup
    Ça marche après plusieurs test.
    Mais il reste un petit problème d'affichage dans le (bloc notes) ou contraire de (sublime text)
    Images attachées Images attachées   

  6. #6
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    Citation Envoyé par soufianedeveloper Voir le message
    Merci Beaucoup
    Ça marche après plusieurs test.
    Mais il reste un petit problème d'affichage dans le (bloc notes) ou contraire de (sublime text)
    Dans le bloc note, c'est normal, tu n'utilises pas une police a largeur fixe. Si tu règles ton notepad pour utiliser une police comme Courrier New, ce sera mieux.

    Et pour le fait que le numéro de compte et le nom soient colles, c'est parce que le numéro de compte fait 24 caractères, et le padding aussi. Si tu veux rajouter quelques espaces, fait un padding de 30 caractères par exemple.
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    MERCI BEAUCOUP !
    Problème résolu

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

Discussions similaires

  1. création fichier Excel à partir d'une application WPF
    Par modafine dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 01/08/2008, 08h53
  2. Réponses: 1
    Dernier message: 19/02/2008, 09h03
  3. Réponses: 10
    Dernier message: 23/10/2007, 15h15
  4. lire un fichier xml à partir d'une application java
    Par diamonds dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/01/2007, 18h23
  5. Réponses: 8
    Dernier message: 07/09/2006, 11h43

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