Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Supprimer chaque ligne d'un fichier jusqu'à trouver la bonne [ Divers / Débutants ] (yo612)

mardi 6 mars 2007 à 23:44:52 | Supprimer chaque ligne d'un fichier jusqu'à trouver la bonne

yo612

Bonsoir,

Je souhaite supprimer chaque (premières) lignes d'un fichier qui ne commence par par une date.
Bien sûr après la date, il y a des informations diverses que je dois conserver.
Mais avant ces lignes commencant par des dates, il y a un entête de longueur variable que je veux supprimer.
J'ai essayé avec ça, mais j'ai du me gourrer quelquepart ou alors il y a une astuce que je ne maitrise pas.
    'Lit une ligne du fichier #i et la met dans la variable Texte
    Line Input #i, texte
    'affecte la variable texte dans la variable lire
    lire = texte
    Dim debut, check
    debut = Mid(texte, 1)
    'vérifier si le début de la ligne commence par une date
    check = IsDate(debut)
    While Not EOF(i)
       'vérifie si la condition isdate est fausse
        If check = False Then
            Line Input #i, texte
            lire = texte
        End If
    Wend
    'écrit les données du presse-papiers dans le fichier destination
    Print #i, strContenuFileName
    'ferme le fichier suite à la commande open
    Close #i


merci de votre coup de main

mercredi 7 mars 2007 à 00:23:34 | Re : Supprimer chaque ligne d'un fichier jusqu'à trouver la bonne

Gobillot

"j'ai du me gourrer quelquepart"

quelquepart, c'est un euphémisme ?
des erreurs il y en a partout


d'abord ça ne ressemble pas du tout à du .Net
le Mid(texte,1) et texte c'est la même chose
et que fait ce print dans un fichier ouvert en input (je suppose)
et que vient faire le presse-parpier là-dedans ?
et que contient donc strContenuFileName ?

Daniel

mercredi 7 mars 2007 à 01:13:10 | Re : Supprimer chaque ligne d'un fichier jusqu'à trouver la bonne

yo612

euh sorry c'est pas du vbnet mais du vb6 j'ai pas dû poster ou il faut.

bon je vais pas recopier tout mon code qui fait presque 2 pages...
donc j'ouvre un fichier 1 que je copie dans le presse-papiers et que j'affiche dans un textbox, je récupère son nom et modifie son extension que j'affiche dans une autre text box. Je récupère le contenu du presse-papiers fait mes bidouilles de conversion et affiche le résultat dans une autre textbox
strcontenufilename est donc le fichier 2 modifié

Merci pour les encouragements mais pour l'instant, j'arrive à faire fonctionner tout mes bidules sauf cette suppression de lignes qui ne contient pas de dates en début de lignes

mercredi 7 mars 2007 à 01:50:17 | Re : Supprimer chaque ligne d'un fichier jusqu'à trouver la bonne

Gobillot

Salut,
oui mais si t'as mis qu'une partie du code, là c'est incompréhensible
on voit que seules les lignes à supprimer sont lues, le fichier en entrée et en sortie est le même,
lire ne sert à rien, debut ne sert à rien, etc..



j'aurais fais comme ça:

j'ouvre le fichier 1
   première phase:
      lire les lignes d'entête (nombre de lignes fixes ou test de la dernière ligne)
   deuxième phase:
      lire les lignes sans date ?
      test par Isdate du début de la Ligne avec Left$ ou Mid$ sans oublier la longueur de la date Mid$(Texte,1,20)
      ou test par autre chose (présence de / ou de : à voir)
      si pas date on boucle, sinon fin de la phase
      attention la dernière ligne lue (donc avec date) est à copier
   troisième phase:
      lire et copier dans strContenuFileName toutes les lignes qui restent.
je ferme le fichier 1

tout ceci sans oublier le test EOF avant chaque lecture
et peut se faire dans la même boucle avec des tests:
While Not EOF(i)
        Line Input #i, texte
        If phase = 1 Then ...
        If phase = 2 Then ...
        If phase = 3 Then ...
    Wend

dernière phase:
  écrire strContenuFileName dans un nouveau fichier.

il y a encore d'autres possibilités:
compter le nombre de caractères par cumul de chaque ligne (+2) pour savoir ou commence début
fermer le fichier, le réouvrir en binaire, relire à partir de début et copier le tout.

mais si tu part du Testbox ou d'une variable (contenu du presse-papier) c'est pas la même chose
tu peux récupérer chaque ligne par split et travailler en table.

Daniel

mercredi 7 mars 2007 à 08:43:16 | Re : Supprimer chaque ligne d'un fichier jusqu'à trouver la bonne

VBGenesis

Je crois que le problème viens du faite que tu essaye de chercher une date dans un seul caractère. Deux solutions:
-Met IsNumeric à la place de IsDate mais dans ce cas tu ne chercheras que les lignes commançants par un chiffre,
- ou fais en sorte que "début" soit de la longueur de la date que tu cherches
VBGenesis

mercredi 7 mars 2007 à 13:44:45 | Re : Supprimer chaque ligne d'un fichier jusqu'à trouver la bonne

yo612

Merci de vos réponses, mais désolé je suis un novice !

j'avais pensé à split mais je le maitrise pas et pourtant je vais en avoir beaucoup besoin pour la suite...
" que les lignes commence par un chiffre" oui mais il y a des lignes qui commence par un chiffre et qui ne m'interresse pas puisque qu'elle ne commence pas par une date.

"test par Isdate du début de la Ligne avec Left$ ou Mid$ sans oublier la longueur de la date Mid$(Texte,1,20)" j'y avais pensé mais si la date est ainsi :
07/03/07 ou 07/03/2007 ou 7/03/07 etc... comment trouver la bonne longueur ?

si la ligne 1 n'est pas la bonne quelle est la commande pour la supprimer ?
je passe à la ligne 2 et fait un print ensuite (si elle est bonne) ?

si je mets ça :
        dim crlf as string
        crlf = Chr$(13) + Chr$(10) 'créé un caractère crlf
        i = FreeFile() 'pour obtenir le No de fichier disponible
        Open strOpenFileName For Input As #i
            If Err Then
                MsgBox "Impossible d'ouvrir le fichier: " + strOpenFileName
            End If
'
        Dim CptLine As Long
        Line Input #i, texte 'Lit une ligne du fichier #i et la met dans la variable Texte
        lire = texte 'Met la variable Texte dans la variable lire
        While Not EOF(i) 'Lit toutes les lignes jusqu'à la fin du fichier
            Line Input #i, texte
            lire = lire & crlf & texte
           
            'compte le nombre de lignes du fichier
            CptLine = CptLine + 1

mais je vois pas comment dire par exemple de ne pas rajouter la ligne 1 ou 2 ou etc... si elle ne commence pas par date



Cette discussion est classé dans : fichier, ligne, variable, texte, supprimer


Répondre à ce message

Sujets en rapport avec ce message

Fichier Texte : supprimer une ligne [ par cherrymoon08 ] Bonjour, voila je voudrias savoir si il existe une fonction en VB.net pour supprimer une ligne dans un fichier texte ou alors faut-il remplacer le con Variable d'une ligne de texte [ par gramlinz60 ] Bonjour à tous,Voila, j'ai un fichier texte de 200 000 lignes. j'ai une fichier excel de 45000 lignes.Je voudrais cherché les infos dans le fichier te Supprimer la 1ère ligne du fichier texte [ par hamardfred ] Slt à tous, pour une petite application en VB6,  j'aurais souhaiter savoir comment suprimer la première ligne d'un fichier texte. J'aurai voulu savoir supprimer UNE ligne dans un fichier txt [ par vince ] mon fichier texte contient par exemple 3 lignes de texte. Je souhaite supprimer la 1ere et en rajouter une à la fin (comme une mémoire déroulante).Mer VB6 - Fichier texte [ par sasa ] J'ai reçu un fichier texte.J'ai réussi à l'importer en VB.Ce fichier est composé de plusieurs lignes (chacune de 128 caractères).Les lignes se présent VB6 - Fichier texte [ par sasa ] J'ai reçu un fichier texte.J'ai réussi à l'importer en VB.Ce fichier est composé de plusieurs lignes (chacune de 128 caractères).Les lignes se présent Comment supprimer la première ligne dans un fichier texte? Merci:) [ par Kali ] Je crois que tout est dit dans le titre, j'ai besoin d'automatiser la suppression de la première ligne d'un fichier texte, est-ce possible?Peut-on par Comment supprimer la première ligne dans un fichier texte? Merci:) [ par Kali ] Je crois que tout est dit dans le titre, j'ai besoin d'automatiser la suppression de la première ligne d'un fichier texte, est-ce possible?Peut-on par


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.