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 6 et antérieur Discussion :

Formatage fichier texte


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Par défaut Formatage fichier texte
    Bonjour à tous,

    Je suis tout nouveau sur ce forum et je pense que vous pourrez m'aider sur mon problème. J'ai un fichier texte contenants des valeurs avec des séparateurs ";", jusque là tout va bien mais je souhaiterais formatter ce fichier pour avoir des champs délimités par un longueur précise (10) comme dans un tableau. Exemple:
    avant --> aaaa;bbb;ccc;ddddddddd;e;ffffffffff
    après --> aaaa bbb ccc ddddddddd e ffffffffff

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut, bienvenue sur DVP

    Mise à part le fait que les ; sont remplacés par des espaces, je ne comprend pas ton des champs délimités par un longueur précise (10) dans l'exemple après.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Par défaut
    Merci pour l'intérêt que tu portes a mon problème. En fait le message envoye n'a pas retranscris les espaces que j'ai mis dans l'exemple.
    Au lieu d'avoir des separateurs ";" je voudrais que les champs soient delimites par un nombre de caracteres precis par exemple 5. Du coup j'aurais un fichier du type :
    Aaa. Bbb. C'. Ddd
    ------ ----- ----- ----- -----
    Champs. 1. 2. 3. 4. 5.
    Comme si je faisais un tableau.
    Je sais pas si je suis assez clair.

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Tiré d'un source VB6 pour créer des tableaux dans un RichTextBox
    Fonctionne aussi sous VBScript en enlevant le typage des variables et des fonctions.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    '----------------------------------------Les fonctions -----------------------------------------
    Private Function StrLeft(Mot As String, NbrCaracteres As Integer, Caractere As String) As String
    Dim CpT As Integer, StrMot As String
    StrMot = Left(Mot, NbrCaracteres)
    CpT = NbrCaracteres - Len(StrMot)
    If Caractere = "" Then Caractere = " "
    If NbrCaracteres > CpT Then
        StrLeft = StrMot & String$(CpT, Caractere)
        Else
        StrLeft = StrMot
    End If
    End Function
    Private Function StrCentr(Mot As String, NbrCaracteres As Integer, CaractereG As String, Optional CaractereD As String = "False") As String
    Dim CpT As Integer, StrMot As String
    StrMot = Left(Mot, NbrCaracteres)
    CpT = (NbrCaracteres - Len(StrMot)) / 2
    If CaractereG = "" Then CaractereG = " "
    If NbrCaracteres > CpT Then
        StrCentr = String$(CpT, CaractereG) & StrMot
        If CaractereD = "False" Or CaractereD = "" Then
            StrCentr = StrCentr & String$(NbrCaracteres - Len(StrCentr), CaractereG)
            Else
            StrCentr = StrCentr & String$(NbrCaracteres - Len(StrCentr), CaractereD)
        End If
        Else
        StrCentr = StrMot
    End If
    End Function
    Private Function StrRight(Mot As String, NbrCaracteres As Integer, Caractere As String) As String
    Dim CpT As Integer, StrMot As String
    StrMot = Left(Mot, NbrCaracteres)
    CpT = NbrCaracteres - Len(StrMot)
    If Caractere = "" Then Caractere = " "
    If NbrCaracteres > CpT Then
        StrRight = String$(CpT, Caractere) & StrMot
        Else
        StrRight = StrMot
    End If
    End Function
     
    '------------------------------- utilisation -----------------------------------
    Private Sub Form_Load()
    MsgBox StrLeft("Salut",10,">")
    MsgBox StrRight("Re",20,"<")
    MsgBox StrCentr("Utilisable?",25,">","<")
     
    MsgBox StrLeft("tout ne sera pas affiché, mais pas de bug",5,"?")
    End Sub
    Motif de l'edit: je pensai avoir répondu sur le forum VBScript , Ben non, donc typage des variables.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Par défaut
    Merci infiniment pour ta réponse. Et j'ai bien compris avec tes exemples. Cependant comment je fais pour faire la même chose avec des valeurs entre 2 caractères spéciaux? Je mets un fichier joint ça expliquera mieux mes propos.
    Fichiers attachés Fichiers attachés

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,
    Tu peux procéder ainsi
    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
    17
     
    Private Sub Command1_Click()
    Dim ligne As String
    Dim tableau() As String
    Dim i As Integer
    Dim Resultat As String
    Dim sChaine As String
     
    ligne = "CIC;8322510;401002;X;EDICOLORN;D;Rglt EDICOLOR NUMERIQUE;342,05;11/02/13;11/02/2013 00:00:00;10/02/2013 00:00:00;;;CHEQUE"
    tableau = Split(ligne, ";")
    For i = 0 To UBound(tableau)
      sChaine = "          "
      Mid(sChaine, 1, Len(sChaine)) = tableau(i)
      Resultat = Resultat & sChaine
    Next
    MsgBox ligne & vbCrLf & vbCrLf & Resultat
    End Sub
    Les éléments de plus de dix caratères sont tronqué.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

Discussions similaires

  1. Formatage fichiers texte avec Gnu-sed
    Par archivage-services dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 05/02/2010, 14h10
  2. Formatage fichier texte Windows-Linux
    Par dr_octopus74 dans le forum Administration système
    Réponses: 2
    Dernier message: 02/02/2007, 19h09
  3. [VBA-E] Formatage des données à l'ouverture d'un fichier texte
    Par jmercier dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2005, 18h00
  4. [FOP] Formatage de fichier texte
    Par serwol dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2005, 14h28

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