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 :

suppression de la dernière ligne vide d'un fichier text en VB6


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut suppression de la dernière ligne vide d'un fichier text en VB6
    Bjr a tous
    j'ai un tres gros problem qui me tracasse depuis une semaine;(je suis debutant)
    je traite des fichier txt en vb;
    les fichier se presentent sur cette forme:
    entête
    lign1
    ligne2
    ...
    ligne 100 000
    et ligne vide en dernière position
    (entête est composer de 3 champs significatifs, chaque ligne est composée de 10 champs significat. la dernière ligne vide (inutile)ne contient rien.
    Mes donnée sont ds un fichier A que je copie vers 1 fichier B en supprimant certaines ligne selon certains critère; mon problem est le suivant :je ne fais pas une copie de la dernière lign vide et genante mais elle apparait ds mon fichier B; je veux la supprimer mais je n'y arrive pas depuis 1 semaine aider moi SVP

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    de la ou je suis j'ai du mal à voir le code que tu utilise pour écrire dans ton fichier B ..! mais je suppose que tu as un "retour-chariot" en trop à la fin de ta dernière ligne écrite .

  3. #3
    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
    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
    Option Explicit
     
    Dim NumFich As Integer
    Dim NomFichier As String
    Dim Msg$
     
    Private Sub Form_Load()
    NomFichier = "C:\essais VB6\Test1.txt"
    NumFich = FreeFile
    Open NomFichier For Input As #NumFich
    Msg$ = Input(FileLen(NomFichier), NumFich)
    Close #NumFich
     
    'supprime les 2 derniers octet
    Msg$ = Left(Msg$, Len(Msg$) - 2)
     
    'réouvre pour enregistrer, Msg$ ne contenant plus le vbCrLf
    NumFich = FreeFile
    Open NomFichier For Output As #NumFich
    Print #NumFich, Msg$
    Close #NumFich
     
    End Sub
    :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 ← ← 👈

  4. #4
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    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
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    If result = vbYes Then
      For Each File In FSO.getfolder(Directory2).Files
      i = i + 1
      ff(i) = FreeFile
      TabCheminTp(i) = Directory2 & "fichier N°" & CStr(i)
      j = 0
       Open TabCheminTp(i) For Input As #ff(i)
      For j = 1 To nbrefichier(i)
            If j = 1 Then ' on ne tiendra pas compte de la premiere ligne
            Input #ff(i), a, b, c
            FirstLign(i) = a & b & c  'stockage de la first line
            valeur0(i) = a
            valeur1(i) = b
            valeur2(i) = c
     
          Else
            Input #ff(i), d, e, f, g, h, k, l, m, n 'a,b,c,... representent les valeurs comprise entre les virgules
               For y = 1 To NbreSup  'ici on recupère les ligne a supprimer ds le                                         ' fichier final
                If e = DelTab(y) Then
                 DelLigne(i, j) = j
                 MsgBox ("ligne trouvee")
                End If
               Next
          End If
        Next
       Close #ff(i)
      Next
    'ici je fais la copie du fichier A 
     
    For Each File In FSO.getfolder(Directory2).Files
      i = i + 1
      j = 0
      ff(i) = FreeFile
      TabCheminTp(i) = Directory2 & "fichier N°" & CStr(i)
      Open TabCheminTp(i) For Input As #ff(i)
          While Not EOF(ff(i))
            j = j + 1
            Line Input #ff(i), sligne(j)
     
            ColLigne2(i).Add sligne(j)
     
          Wend
      Close #ff(i)
     Next
     
    'ici je fais une recriture ds le fichier AB
     
     i = 0
     For Each File In FSO.getfolder(Directory2).Files
      i = i + 1
      ff(i) = FreeFile
      TabCheminTp(i) = Directory2 & "fichier N°" & CStr(i)
      j = 0
      Open TabCheminTp(i) For Output As #ff(i)
      'valeur0(i) = j
      FirstLign(i) = valeur0(i) & "," & valeur1(i) & "," & valeur2(i)
      Print #ff(i), FirstLign(i)
        For y = 2 To nbrefichier(i)
         If (y <> DelLigne(i, y)) Then
           Print #ff(i), ColLigne2(i)(y)
          End If
        Next
       Close #ff(i)
     Next
    voici un apperçu

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    Salu ProgElect

    qu'elle est cette forme de déclaration? Dim Msg$ ??
    que represente msg$??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msg$ = Left(Msg$, Len(Msg$) - 2)
    msg$ ?cette variable va t-elle contenir chaque ligne ?ou chaque fichier de 100 000 ligne??
    Merci d'avance

  6. #6
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    C'est une ancienne forme de déclaration de variable héritée des premiers basics (dite postfixée)

    Dim Msg$ est equivalent à Dim Msg as string

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

Discussions similaires

  1. [XL-2007] Supprimer la dernière ligne vide d'un fichier txt avec vba
    Par nyepalo dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/06/2015, 09h31
  2. Supprimer la dernière ligne vide d'un fichier txt
    Par petit rabot dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/12/2011, 12h15
  3. Supprimer une ligne vide dans un fichier texte
    Par Tibà22 dans le forum Débuter
    Réponses: 2
    Dernier message: 18/04/2011, 16h58
  4. Réponses: 6
    Dernier message: 30/10/2009, 16h13
  5. Probleme ligne vide dans un fichier texte ?
    Par liocifer dans le forum VBScript
    Réponses: 3
    Dernier message: 05/06/2008, 09h45

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