Bonjour,
je suis novice en manipulation de fichier, et je n'ai pas trouvé de méthode
qui vide un fichier texte.
De plus, est-il possible de modifier une ligne d'un fichier (quitte à la
réécrire entièrement, mais à la même place) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
frédo
pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut lire le fichier ligne par ligne jusqu'à arriver à la ligne à modifier et bien sûr le recréer. En tout cas avec les moyens standards de C#.
-----Original Message----- Bonjour, je suis novice en manipulation de fichier, et je n'ai
pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut
lire le fichier ligne par ligne jusqu'à arriver à la
ligne à modifier et bien sûr le recréer. En tout cas avec
les moyens standards de C#.
-----Original Message-----
Bonjour,
je suis novice en manipulation de fichier, et je n'ai
pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut lire le fichier ligne par ligne jusqu'à arriver à la ligne à modifier et bien sûr le recréer. En tout cas avec les moyens standards de C#.
-----Original Message----- Bonjour, je suis novice en manipulation de fichier, et je n'ai
La classe System.IO.File fournit toutes les méthodes utiles pour réaliser ce traitement.
Cordialement,
Jean-Marc Sennechael Microsoft France - MCS
Ce message est fourni en l'état, sans garantie d'aucune sorte et ne vous confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"frédo" wrote in message news:18c201c4dbb5$b8914c30$ pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut lire le fichier ligne par ligne jusqu'à arriver à la ligne à modifier et bien sûr le recréer. En tout cas avec les moyens standards de C#.
-----Original Message----- Bonjour, je suis novice en manipulation de fichier, et je n'ai
La classe System.IO.File fournit toutes les méthodes utiles pour réaliser ce
traitement.
Cordialement,
Jean-Marc Sennechael
Microsoft France - MCS
Ce message est fourni en l'état, sans garantie d'aucune sorte et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"frédo" <anonymous@discussions.microsoft.com> wrote in message
news:18c201c4dbb5$b8914c30$a601280a@phx.gbl...
pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut
lire le fichier ligne par ligne jusqu'à arriver à la
ligne à modifier et bien sûr le recréer. En tout cas avec
les moyens standards de C#.
-----Original Message-----
Bonjour,
je suis novice en manipulation de fichier, et je n'ai
La classe System.IO.File fournit toutes les méthodes utiles pour réaliser ce traitement.
Cordialement,
Jean-Marc Sennechael Microsoft France - MCS
Ce message est fourni en l'état, sans garantie d'aucune sorte et ne vous confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"frédo" wrote in message news:18c201c4dbb5$b8914c30$ pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut lire le fichier ligne par ligne jusqu'à arriver à la ligne à modifier et bien sûr le recréer. En tout cas avec les moyens standards de C#.
-----Original Message----- Bonjour, je suis novice en manipulation de fichier, et je n'ai
Fredo, j'avais effectivement pensé à recréer le fichier, mais je trouve incroyable qu'on soit obligé de passer par là pour cette opération.
Jean-Marc, de quel traitement parles-tu ? De recréer le fichier ou de le vider ? Si c'est de le vider, peux-tu me donner la méthode adéquate car je ne la trouve vraiment pas.
D'avance merci
"Jean-marc Sennechael" wrote:
Bonjour,
La classe System.IO.File fournit toutes les méthodes utiles pour réaliser ce traitement.
Cordialement,
Jean-Marc Sennechael Microsoft France - MCS
Ce message est fourni en l'état, sans garantie d'aucune sorte et ne vous confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"frédo" wrote in message news:18c201c4dbb5$b8914c30$ pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut lire le fichier ligne par ligne jusqu'à arriver à la ligne à modifier et bien sûr le recréer. En tout cas avec les moyens standards de C#.
Fredo, j'avais effectivement pensé à recréer le fichier, mais je trouve
incroyable qu'on soit obligé de passer par là pour cette opération.
Jean-Marc, de quel traitement parles-tu ? De recréer le fichier ou de le
vider ? Si c'est de le vider, peux-tu me donner la méthode adéquate car je ne
la trouve vraiment pas.
D'avance merci
"Jean-marc Sennechael" wrote:
Bonjour,
La classe System.IO.File fournit toutes les méthodes utiles pour réaliser ce
traitement.
Cordialement,
Jean-Marc Sennechael
Microsoft France - MCS
Ce message est fourni en l'état, sans garantie d'aucune sorte et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"frédo" <anonymous@discussions.microsoft.com> wrote in message
news:18c201c4dbb5$b8914c30$a601280a@phx.gbl...
pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut
lire le fichier ligne par ligne jusqu'à arriver à la
ligne à modifier et bien sûr le recréer. En tout cas avec
les moyens standards de C#.
Fredo, j'avais effectivement pensé à recréer le fichier, mais je trouve incroyable qu'on soit obligé de passer par là pour cette opération.
Jean-Marc, de quel traitement parles-tu ? De recréer le fichier ou de le vider ? Si c'est de le vider, peux-tu me donner la méthode adéquate car je ne la trouve vraiment pas.
D'avance merci
"Jean-marc Sennechael" wrote:
Bonjour,
La classe System.IO.File fournit toutes les méthodes utiles pour réaliser ce traitement.
Cordialement,
Jean-Marc Sennechael Microsoft France - MCS
Ce message est fourni en l'état, sans garantie d'aucune sorte et ne vous confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"frédo" wrote in message news:18c201c4dbb5$b8914c30$ pour vider le fichier, je pense qu'il faut le recréer
pour modifier une ligne dans un fichier texte il faut lire le fichier ligne par ligne jusqu'à arriver à la ligne à modifier et bien sûr le recréer. En tout cas avec les moyens standards de C#.
Il n'y a rien dans File qui permet de vider. C'est juste une classe qui permet de par exemple deleter ton fichier, obtenir directement un flux vers le fichier...
Il y a une autre classe similaire: FileInfo. La différence est qu'elle ne propose que des méthodes d'instance. Si tu as de nombreuses manipulation à faire sur le fichier, elle est sans doute plus rentable
Il n'y a rien dans File qui permet de vider.
C'est juste une classe qui permet de par exemple deleter
ton fichier, obtenir directement un flux vers le
fichier...
Il y a une autre classe similaire: FileInfo. La
différence est qu'elle ne propose que des méthodes
d'instance.
Si tu as de nombreuses manipulation à faire sur le
fichier, elle est sans doute plus rentable
Il n'y a rien dans File qui permet de vider. C'est juste une classe qui permet de par exemple deleter ton fichier, obtenir directement un flux vers le fichier...
Il y a une autre classe similaire: FileInfo. La différence est qu'elle ne propose que des méthodes d'instance. Si tu as de nombreuses manipulation à faire sur le fichier, elle est sans doute plus rentable
Fredo, j'avais effectivement pensé à recréer le fichier, mais je trouve incroyable qu'on soit obligé de passer par là pour cette opération.
Si vous utilisez la méthode File.Open, vous ouvrez le fichier et tout ce que vous écrivez dedans substituera l'ancien contenu.
-- Zazar
Zazar
Bonsoir,
Il n'y a rien dans File qui permet de vider. C'est juste une classe qui permet de par exemple deleter ton fichier, obtenir directement un flux vers le fichier...
Il y a une autre classe similaire: FileInfo. La différence est qu'elle ne propose que des méthodes d'instance. Si tu as de nombreuses manipulation à faire sur le fichier, elle est sans doute plus rentable
Je ne sais pas ce que vous entendez par "de nombreuses manipulations", mais si vous voulez dire par exemple qu'il est plus rapide d'appeler n fois la méthode Open() de FileInfo que d'appeler n fois sur File (sur un même fichier), c'est faux : les 2 méthodes font la même chose (à savoir appeler le même constructeur de FileStream). Et de toute façon, même s'il y avait une petite différence, elle aurait été certainement négligeable par rapport aux temps d'accés disque.
-- Zazar
Bonsoir,
Il n'y a rien dans File qui permet de vider.
C'est juste une classe qui permet de par exemple deleter
ton fichier, obtenir directement un flux vers le
fichier...
Il y a une autre classe similaire: FileInfo. La
différence est qu'elle ne propose que des méthodes
d'instance.
Si tu as de nombreuses manipulation à faire sur le
fichier, elle est sans doute plus rentable
Je ne sais pas ce que vous entendez par "de nombreuses manipulations", mais
si vous voulez dire par exemple qu'il est plus rapide d'appeler n fois la
méthode Open() de FileInfo que d'appeler n fois sur File (sur un même
fichier), c'est faux : les 2 méthodes font la même chose (à savoir appeler
le même constructeur de FileStream). Et de toute façon, même s'il y avait
une petite différence, elle aurait été certainement négligeable par rapport
aux temps d'accés disque.
Il n'y a rien dans File qui permet de vider. C'est juste une classe qui permet de par exemple deleter ton fichier, obtenir directement un flux vers le fichier...
Il y a une autre classe similaire: FileInfo. La différence est qu'elle ne propose que des méthodes d'instance. Si tu as de nombreuses manipulation à faire sur le fichier, elle est sans doute plus rentable
Je ne sais pas ce que vous entendez par "de nombreuses manipulations", mais si vous voulez dire par exemple qu'il est plus rapide d'appeler n fois la méthode Open() de FileInfo que d'appeler n fois sur File (sur un même fichier), c'est faux : les 2 méthodes font la même chose (à savoir appeler le même constructeur de FileStream). Et de toute façon, même s'il y avait une petite différence, elle aurait été certainement négligeable par rapport aux temps d'accés disque.
-- Zazar
ce n'est pas ce que dit la doc
-----Original Message----- Bonsoir,
Il n'y a rien dans File qui permet de vider. C'est juste une classe qui permet de par exemple
deleter
ton fichier, obtenir directement un flux vers le fichier...
Il y a une autre classe similaire: FileInfo. La différence est qu'elle ne propose que des méthodes d'instance. Si tu as de nombreuses manipulation à faire sur le fichier, elle est sans doute plus rentable
Je ne sais pas ce que vous entendez par "de nombreuses
manipulations", mais
si vous voulez dire par exemple qu'il est plus rapide
d'appeler n fois la
méthode Open() de FileInfo que d'appeler n fois sur File
(sur un même
fichier), c'est faux : les 2 méthodes font la même chose
(à savoir appeler
le même constructeur de FileStream). Et de toute façon,
même s'il y avait
une petite différence, elle aurait été certainement
négligeable par rapport
aux temps d'accés disque.
-- Zazar
.
ce n'est pas ce que dit la doc
-----Original Message-----
Bonsoir,
Il n'y a rien dans File qui permet de vider.
C'est juste une classe qui permet de par exemple
deleter
ton fichier, obtenir directement un flux vers le
fichier...
Il y a une autre classe similaire: FileInfo. La
différence est qu'elle ne propose que des méthodes
d'instance.
Si tu as de nombreuses manipulation à faire sur le
fichier, elle est sans doute plus rentable
Je ne sais pas ce que vous entendez par "de nombreuses
manipulations", mais
si vous voulez dire par exemple qu'il est plus rapide
d'appeler n fois la
méthode Open() de FileInfo que d'appeler n fois sur File
(sur un même
fichier), c'est faux : les 2 méthodes font la même chose
(à savoir appeler
le même constructeur de FileStream). Et de toute façon,
même s'il y avait
une petite différence, elle aurait été certainement
Il n'y a rien dans File qui permet de vider. C'est juste une classe qui permet de par exemple
deleter
ton fichier, obtenir directement un flux vers le fichier...
Il y a une autre classe similaire: FileInfo. La différence est qu'elle ne propose que des méthodes d'instance. Si tu as de nombreuses manipulation à faire sur le fichier, elle est sans doute plus rentable
Je ne sais pas ce que vous entendez par "de nombreuses
manipulations", mais
si vous voulez dire par exemple qu'il est plus rapide
d'appeler n fois la
méthode Open() de FileInfo que d'appeler n fois sur File
(sur un même
fichier), c'est faux : les 2 méthodes font la même chose
(à savoir appeler
le même constructeur de FileStream). Et de toute façon,
même s'il y avait
une petite différence, elle aurait été certainement
négligeable par rapport
aux temps d'accés disque.
-- Zazar
.
Zazar
Bonsoir,
ce n'est pas ce que dit la doc
La doc dit :
"Si vous souhaitez réutiliser un objet plusieurs fois, l'utilisation de la méthode d'instance de FileInfo à la place des méthodes static correspondantes de la classe File peut être préférable, parce qu'un contrôle de sécurité ne sera pas toujours nécessaire"
Ca mérite une traduction :
Pour certaines fonctions (AppendText et OpenText), la classe File fait une vérification sur l'argument (est-il null?) alors que la classe FileInfo ne fait la vérification que dans le constructeur. Donc effectivement, il y a un contrôle supplémentaire. Seulement ces fonctions appellent un constructeur qui fait lui aussi la vérification. Autrement dit avec la classe File on a 2 vérifications, avec la classe FileInfo, on en a 1 seule. Mais quand le JIT va voir les 2 vérifications identiques l'une aprés l'autre, il va retirer la 2ième. Donc au final, au niveau performances on se retrouve avec la même chose (et de toute façon comme dit précédemment, un test de valeur nulle est totalement négligeable devant un accés disque). Mais il reste que FileInfo permet d'avoir un joli objet bien typé au lieu d'une simple string.
-- Zazar
Bonsoir,
ce n'est pas ce que dit la doc
La doc dit :
"Si vous souhaitez réutiliser un objet plusieurs fois, l'utilisation de la
méthode d'instance de FileInfo à la place des méthodes static
correspondantes de la classe File peut être préférable, parce qu'un contrôle
de sécurité ne sera pas toujours nécessaire"
Ca mérite une traduction :
Pour certaines fonctions (AppendText et OpenText), la classe File fait une
vérification sur l'argument (est-il null?) alors que la classe FileInfo ne
fait la vérification que dans le constructeur. Donc effectivement, il y a un
contrôle supplémentaire. Seulement ces fonctions appellent un constructeur
qui fait lui aussi la vérification.
Autrement dit avec la classe File on a 2 vérifications, avec la classe
FileInfo, on en a 1 seule. Mais quand le JIT va voir les 2 vérifications
identiques l'une aprés l'autre, il va retirer la 2ième. Donc au final, au
niveau performances on se retrouve avec la même chose (et de toute façon
comme dit précédemment, un test de valeur nulle est totalement négligeable
devant un accés disque). Mais il reste que FileInfo permet d'avoir un joli
objet bien typé au lieu d'une simple string.
"Si vous souhaitez réutiliser un objet plusieurs fois, l'utilisation de la méthode d'instance de FileInfo à la place des méthodes static correspondantes de la classe File peut être préférable, parce qu'un contrôle de sécurité ne sera pas toujours nécessaire"
Ca mérite une traduction :
Pour certaines fonctions (AppendText et OpenText), la classe File fait une vérification sur l'argument (est-il null?) alors que la classe FileInfo ne fait la vérification que dans le constructeur. Donc effectivement, il y a un contrôle supplémentaire. Seulement ces fonctions appellent un constructeur qui fait lui aussi la vérification. Autrement dit avec la classe File on a 2 vérifications, avec la classe FileInfo, on en a 1 seule. Mais quand le JIT va voir les 2 vérifications identiques l'une aprés l'autre, il va retirer la 2ième. Donc au final, au niveau performances on se retrouve avec la même chose (et de toute façon comme dit précédemment, un test de valeur nulle est totalement négligeable devant un accés disque). Mais il reste que FileInfo permet d'avoir un joli objet bien typé au lieu d'une simple string.
-- Zazar
frédo
je me permets d'insister, la doc dit: "parce qu'un contrôle de sécurité ne sera pas toujours nécessaire"
Il y a a un moment une remontée de la pile des appels (un Demand) qui est fait dans le constructeur de FileInfo et pour chaque méthode de File.
On ne peut pas dire que ce soit gratuit.
Par contre il serait bien que la doc précise ce qu'elle entends par "pas toujours nécessaire".
-----Original Message----- Bonsoir,
ce n'est pas ce que dit la doc
La doc dit :
"Si vous souhaitez réutiliser un objet plusieurs fois,
l'utilisation de la
méthode d'instance de FileInfo à la place des méthodes
static
correspondantes de la classe File peut être préférable,
parce qu'un contrôle
de sécurité ne sera pas toujours nécessaire"
Ca mérite une traduction :
Pour certaines fonctions (AppendText et OpenText), la
classe File fait une
vérification sur l'argument (est-il null?) alors que la
classe FileInfo ne
fait la vérification que dans le constructeur. Donc
effectivement, il y a un
contrôle supplémentaire. Seulement ces fonctions
appellent un constructeur
qui fait lui aussi la vérification. Autrement dit avec la classe File on a 2 vérifications,
avec la classe
FileInfo, on en a 1 seule. Mais quand le JIT va voir les
2 vérifications
identiques l'une aprés l'autre, il va retirer la 2ième.
Donc au final, au
niveau performances on se retrouve avec la même chose
(et de toute façon
comme dit précédemment, un test de valeur nulle est
totalement négligeable
devant un accés disque). Mais il reste que FileInfo
permet d'avoir un joli
objet bien typé au lieu d'une simple string.
-- Zazar
.
je me permets d'insister, la doc dit:
"parce qu'un contrôle de sécurité ne sera pas toujours
nécessaire"
Il y a a un moment une remontée de la pile des appels (un
Demand) qui est fait dans le constructeur de FileInfo et
pour chaque méthode de File.
On ne peut pas dire que ce soit gratuit.
Par contre il serait bien que la doc précise ce qu'elle
entends par "pas toujours nécessaire".
-----Original Message-----
Bonsoir,
ce n'est pas ce que dit la doc
La doc dit :
"Si vous souhaitez réutiliser un objet plusieurs fois,
l'utilisation de la
méthode d'instance de FileInfo à la place des méthodes
static
correspondantes de la classe File peut être préférable,
parce qu'un contrôle
de sécurité ne sera pas toujours nécessaire"
Ca mérite une traduction :
Pour certaines fonctions (AppendText et OpenText), la
classe File fait une
vérification sur l'argument (est-il null?) alors que la
classe FileInfo ne
fait la vérification que dans le constructeur. Donc
effectivement, il y a un
contrôle supplémentaire. Seulement ces fonctions
appellent un constructeur
qui fait lui aussi la vérification.
Autrement dit avec la classe File on a 2 vérifications,
avec la classe
FileInfo, on en a 1 seule. Mais quand le JIT va voir les
2 vérifications
identiques l'une aprés l'autre, il va retirer la 2ième.
Donc au final, au
niveau performances on se retrouve avec la même chose
(et de toute façon
comme dit précédemment, un test de valeur nulle est
totalement négligeable
devant un accés disque). Mais il reste que FileInfo
je me permets d'insister, la doc dit: "parce qu'un contrôle de sécurité ne sera pas toujours nécessaire"
Il y a a un moment une remontée de la pile des appels (un Demand) qui est fait dans le constructeur de FileInfo et pour chaque méthode de File.
On ne peut pas dire que ce soit gratuit.
Par contre il serait bien que la doc précise ce qu'elle entends par "pas toujours nécessaire".
-----Original Message----- Bonsoir,
ce n'est pas ce que dit la doc
La doc dit :
"Si vous souhaitez réutiliser un objet plusieurs fois,
l'utilisation de la
méthode d'instance de FileInfo à la place des méthodes
static
correspondantes de la classe File peut être préférable,
parce qu'un contrôle
de sécurité ne sera pas toujours nécessaire"
Ca mérite une traduction :
Pour certaines fonctions (AppendText et OpenText), la
classe File fait une
vérification sur l'argument (est-il null?) alors que la
classe FileInfo ne
fait la vérification que dans le constructeur. Donc
effectivement, il y a un
contrôle supplémentaire. Seulement ces fonctions
appellent un constructeur
qui fait lui aussi la vérification. Autrement dit avec la classe File on a 2 vérifications,
avec la classe
FileInfo, on en a 1 seule. Mais quand le JIT va voir les
2 vérifications
identiques l'une aprés l'autre, il va retirer la 2ième.
Donc au final, au
niveau performances on se retrouve avec la même chose
(et de toute façon
comme dit précédemment, un test de valeur nulle est
totalement négligeable
devant un accés disque). Mais il reste que FileInfo
permet d'avoir un joli
objet bien typé au lieu d'une simple string.
-- Zazar
.
Zazar
Bonsoir,
je me permets d'insister, la doc dit: "parce qu'un contrôle de sécurité ne sera pas toujours nécessaire"
Il y a a un moment une remontée de la pile des appels (un Demand) qui est fait dans le constructeur de FileInfo et pour chaque méthode de File.
On ne peut pas dire que ce soit gratuit.
Par contre il serait bien que la doc précise ce qu'elle entends par "pas toujours nécessaire".
Vous faîtes bien d'insister, vous venez de me faire découvrir que le constructeur de FileInfo faisait un FileIOPermission.Demand(). Cependant, je maintiens que les codes d'exécution des fonctions Open() ,Append() & co des classes File et FileInfo sont quasi-identiques. Il y a donc certes un Demand fait pour chaque méthode de File, mais aussi pour chaque méthode de FileInfo.
-- Zazar
Bonsoir,
je me permets d'insister, la doc dit:
"parce qu'un contrôle de sécurité ne sera pas toujours
nécessaire"
Il y a a un moment une remontée de la pile des appels (un
Demand) qui est fait dans le constructeur de FileInfo et
pour chaque méthode de File.
On ne peut pas dire que ce soit gratuit.
Par contre il serait bien que la doc précise ce qu'elle
entends par "pas toujours nécessaire".
Vous faîtes bien d'insister, vous venez de me faire découvrir que le
constructeur de FileInfo faisait un FileIOPermission.Demand(). Cependant, je
maintiens que les codes d'exécution des fonctions Open() ,Append() & co des
classes File et FileInfo sont quasi-identiques. Il y a donc certes un Demand
fait pour chaque méthode de File, mais aussi pour chaque méthode de
FileInfo.
je me permets d'insister, la doc dit: "parce qu'un contrôle de sécurité ne sera pas toujours nécessaire"
Il y a a un moment une remontée de la pile des appels (un Demand) qui est fait dans le constructeur de FileInfo et pour chaque méthode de File.
On ne peut pas dire que ce soit gratuit.
Par contre il serait bien que la doc précise ce qu'elle entends par "pas toujours nécessaire".
Vous faîtes bien d'insister, vous venez de me faire découvrir que le constructeur de FileInfo faisait un FileIOPermission.Demand(). Cependant, je maintiens que les codes d'exécution des fonctions Open() ,Append() & co des classes File et FileInfo sont quasi-identiques. Il y a donc certes un Demand fait pour chaque méthode de File, mais aussi pour chaque méthode de FileInfo.