|
Trouver une ressource
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)
Informations & options pour cette discussion
|
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 #imerci 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
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|