Lire un nouveau fichier texte chaque jour

- - Dernière réponse : Whismeril
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
- 21 juil. 2019 à 18:57
Bonjour,
j'ai développé une application en vb.net , mais j'ai pas réussi à faire une chose. j'ai un répertoire qui contient plusieurs fichiers texte, chaque jour un nouveau fichier texte est créé dans le répertoire. mon problème c'est : comment je peux faire pour lire le nouveau fichier créé chaque jour ?
Merci
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
6421
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 décembre 2019
91
1
Merci
Bonjour,

pour afficher le texte dans une Textbox (ou RichtextBox) voir ceci:

https://clxer.blogspot.com/2013/06/comment-ouvrir-un-fichier-texte-en-vb.html

pour ouvrir le fichier avec le logiciel dédié voir cela:

https://www.dotnetperls.com/process-vbnet

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
-
Bonjour et merci pour votre réponse. pour la lecture c'est bon c'est déjà fait , mais le problème c'est comment changer le nom du fichier texte chaque jour, c'est comme une mise à jour du fichier, vous comprenez le principe ?
cs_Le Pivert
Messages postés
6421
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 décembre 2019
91 -
Commenter la réponse de cs_Le Pivert
Messages postés
1979
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
5 décembre 2019
77
1
Merci
Bonjour
Attention changer le nom d'un fichier et mettre à jour un fichier sont 2 opérations très différentes . La seconde concerne les données du fichier ( son contenu ) alors que la première ne fait que changer son nom
Pour changer le nom d'un fichier chaque jour pourquoi ne pas combiner par exemple Fichier avec la date du jour : pour aujourd'hui ce serait Fichier18072019 comme nom de fichier et demain Fichier19072019 , etc .....
Autre chose faut-il que tu gardes les fichiers précédents lorsque tu crées un nouveau fichier ? Car en 1 année cela fera 365 fichiers .

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
-
Exactement je veux changer que le nom du fichier . pour vous expliquer un peu, chaque jour le nouveau fichier créé automatiquement ( ce n'est pas moi qui le fait c'est le système) a un nom différent de l'ancien, ca veux dire ce que je veux moi c'est : le nouveau fichier va remplacer l'ancien fichier , c'est là où je suis bloqué et je ne sais pas comment faire . Merci pour votre réponse
Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
-
les fichiers ils sont des noms un peu spéciaux, ce n'est pas avec la date du jour mais un nom qui est spécial
Commenter la réponse de vb95
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322
1
Merci
Bonjour

un truc comme ça
    Private Sub Emma52()
        'lister les fichier *.txt dans le répertoire C:\temp, extension et répertoire à modifier au besoin, 
        Dim fichiers() As String = Directory.GetFiles("C:\temp", "*.txt")

        'obtention des métadonnées des fichiers
        Dim infos As List(Of FileInfo) = fichiers.Select(Function(f) New FileInfo(f)).ToList()

        'sélection du plus récent (pour le cas ou le fichier du jour ne soit pas encore crée, ou inversement qu'il y ait plusieur fichiers ce jours
        Dim leFichier As FileInfo = infos.OrderBy(Function(f) f.CreationTime).Last()

        If (leFichier.CreationTime.Date = DateTime.Now.Date) Then
            Dim leTexte As String = File.ReadAllText(leFichier.FullName)
        End If

    End Sub






Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
-
Bonjour , ouiii ça m'interèsse beaucoup ça , merci beaucoup , j'ai fait un code mais ça à pas marcher :

For Each foundFile As String In My.Computer.FileSystem.GetFiles( "L:\CFT-BRHM\",
' Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.SW")
' Dim dt As DateTime = File.GetCreationTime(foundFile)

' Dim datej As Date
' datej = Date.Now

'If ( dt <> datej) Then
'File.ReadAllLines(foundFile)

' End If

'MsgBox (foundFile)

'Next

du coup j'ai laisser tomber ce code j'ai pas chercher à le résoudre , mais votre code m’intéresse merci beaucoup
Commenter la réponse de Whismeril
Messages postés
1979
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
5 décembre 2019
77
0
Merci
bonjour
Dans ce cas il suffit
1) de supprimer l'ancien fichier
2) de donner au nouveau fichier le même nom que l'ancien
Ceci fait partie des commandes de base des systèmes de fichiers
Voir https://docs.microsoft.com/fr-fr/dotnet/api/system.io.file?view=netframework-4.8 et principalement les commandes Delete(string) et Move(String, String)

Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
-
et ca peux marcher avec la date de création du fichier ? si oui vous pouvez me donner un exemple ? merci beaucoup ( si la date de création du fichier = à la date du jour du coup on lis le fichier qui à la date du jour )
Commenter la réponse de vb95
Messages postés
1979
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
5 décembre 2019
77
0
Merci
bonjour
J'ai l'impression que tu confonds "Remplacement de fichier" et "Changement de nom de fichier" ! Il faudrait que tu sois plus claire dans tes explications
Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
-
d'accord je m'explique très bien , il s'agit de " changement du nom du fichier " c'est ce que je veux. excusez moi de vous avoir dérangé.
Merci beaucoup .
JeuDuTaquin
Messages postés
135
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
17 novembre 2019
2 > Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
-
Monsieur VB95, et les autres intervenants ont répondu poliment… et patiemment à ta réponse, et tes remerciement sont justifiés.

Mais, il faut savoir que coder une routine n'est pas simple sans exemple ni début de code.

Tu as un fichier 1235455.LOG que tu dois afficher.
Tu n'as pas le nom, mais tu dois prendre le dernier créé, le copier dans un fichier "générique" chaque jour (INFO.TXT) et rafraichir l'affichage en cas de changement de date.

Donc, ton problème est de "targeter" le fichier système récemment créé !
Le copier sur le fichier "générique", et à l'aide d'un timer, le recharger si celui-ci a changé (info.txt ne doit pas avoir la même taille).

Car, apparemment, tu avais oublié de spécifier que tu n'avais pas besoin d'historique journalier !
Le seul vrai problème pour toi, est de "trouver" le fichier qui à été créé le jour même!... Donc, soit tu cherche la méthode d'encodage au niveau du système (et tu fais un tri par date, caractères…sur le nom de fichier), soit tu trouves le moyen de faire un tri au niveau de la date de création… ce qui est possible avec les fonctions de gestion de fichiers avancés.

Ta question est donc, "Comment trier des fichiers par ordre de création, pour copier le plus récent dans un fichier que je vais afficher?"

C'est comme ça que ça marche…

"je veux. excusez moi de vous avoir dérangé", oui et ils te maudissent tous…
Emma_52
Messages postés
7
Date d'inscription
mercredi 17 juillet 2019
Statut
Membre
Dernière intervention
19 juillet 2019
> JeuDuTaquin
Messages postés
135
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
17 novembre 2019
-
premièrement , vous n'avez pas le droit de me tutoyer, 2eme chose merci pour votre réponse et c'est à vous de me répondre poliment, et vous n'avez pas le droit de me dire " oui il te maudissent tous" parce que vous n'avez pas le droit de parler à la place des gents, d'accord ? et pour le code j'ai déjà un début mais ça marche pas, alors arrêtez de juger les gents et de les insulter , si ma question ne vous intéresse pas, ne répondez pas .barre , personne ne vous a obligé à répondre .
Commenter la réponse de vb95
Messages postés
1979
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
5 décembre 2019
77
0
Merci
Bonjour JeuduTaquin
Moi je ne maudis personne et votre commentaire en fin de post est plus que déplacé !
Vous dîtes que tout le monde a répondu poliment à Emma_52 . Pourquoi n'en faîtes vous donc pas autant ? A moins que ce ne soit pour taquiner . Mais dans ce cas on ne taquine que les personnes que l'on connaît et dont on peut se le permettre et toujours avec gentillesse et respect !

JeuDuTaquin
Messages postés
135
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
17 novembre 2019
2 -
Salut VB95,

Pas de problème, si ça peut paire avancer le projet.

Mais, il m'est insupportable qu'un intervenant poste un message de ce type.

Finir par un "c'est pas grave!", "mes excuses pour le dérangement" ou "on m'a dit sur un autre forum"... n'est pas la bonne manière de trouver une solution à un problème qu'un quémandeur se pose.

Pour trouver une solution, il faut exposer clairement un cahier des charges, en faire la synthèse et trouver la bonne (meilleur) solution à ce problème.

Un projet, c'est 20% d'idées, 60% de reflection et 20% de recherches.

Les "autres" ne sont pas plus intelligent que lui, seulement, ils savent en faire la synthèse.

Mais, c'est pas grave, il va aller chercher la solution ailleurs…
Commenter la réponse de vb95
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322
0
Merci
Bonjour
J’espérais qu’en postant une solution cela clorait le débat, mais manifestement non.

Donc Emma tu es nouvelle, il y a quelques choses que tu dois savoir.
Le tutoiement est traditionnel sur CodeS SourceS, même si tous ne l’utilisent pas. Cela date d’une époque reculée où vbfrance, delphi.fr etc était un groupement de forums animés par des « copains virtuels ». Certains étaient copains dans la vie, d’autres le sont devenus. Voilà quand tu postes sur CodeS SourceS, il faut accepter que l’on te tutoie.

Quand tu postes un message, tu connais exactement ta situation, et tu tentes de la résumer le plus clairement possible. Mais il se peut que tu ne sois pas si claire que ça, ou que tes interlocuteurs interprètent différemment tes écrits. Brefs de malentendus en malentendus ça finit parfois par s’envenimer.

Une phrase telle que
excusez moi de vous avoir dérangé.
peut-être interprétée des 2 manières totalement opposées:
  • des excuses
  • de l’ironie


N’oublie pas que nous sommes bénévoles, et des gens comme les autres.
JeuDuTaquin
Messages postés
135
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
17 novembre 2019
2 -
Salut Whismeril,

J'aimerai ajouter pour le tutoiement, qu'il n'est aucunement en rapport avec un manque de respect.

La langue Français porte un quiproquo sur le mot "Vous" et "vous".

Pour un forum, une équipe ou un groupe, soit on s'adresse à un intervenant, soit à un groupe.

"Tu", c'est toi et "vous" … tout le monde.

Donc, comme le groupe est ouvert et lu par des centaines de personnes… certains vont te répondre car ils se sentent concerné par le caractère global de la destination.

Le "tutoiement" permet de privatier une question d'une intervenant… et non pour montrer une estime, un grade, une expertise… ou un âge… dans une conversation.

Il est à noter que le vouvoiement s'effectue principalement dans une conversation direct… qui ne peut porter d'ambiguïté sur le destinataire du discours.
Sur un forum public, RIEN ne permet de faire la part des chose, même si le pseudo est cité, le futur lecteur s'identifiant au quémandeur se trouvera d'autant plus flatté de ce vouvoiement, "immérité" pour certains !

Donc, "avez-vous" compris?" (pour l'équipe)… et "As-tu compris?" pour l'intervenant cité.

Et perso, les "Vous" dans tous les sens, ça gave au bout d'un moment… nous ne sommes pas tous des vieux, des profs ou des flics.

Mais dans la vraie vie, je vous demanderai de me vouvoyer, se sont les règles pour débuter un conversation inopinée.

Ici, le "manque de respect", c'est d'igorer ta question...
Whismeril
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322 -
Mouais, n’empêche que
ils te maudissent tous…
n’était pas approprié
Commenter la réponse de Whismeril
Messages postés
1979
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
5 décembre 2019
77
0
Merci
Merci pour les vieux, les profs et les flics ! Je fais partie de 2 de ces catégories
JeuDuTaquin
Messages postés
135
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
17 novembre 2019
2 -
Salut Vb95,
Oui, remarque judicieuse, car nous oublions trop souvent que les "vous" ont un effet cumulatif par rapport à ces trois critères de vouvoiement.

A un vieux : "Vous pouvez traverser ! c'est vert."

A un vieux prof.:
"Vous vous êtes trompé sur ma note, y'a pas de chiffre devant le zéro"

A un vieux sergent instructeur de l'IGPN:
"Vous...Vous, vous allez rire, mais le coup est parti tout seul !"
Commenter la réponse de vb95