Bonjour a tous,
Je voudrais savoir qu'elle est la meilleure façon d'éditer par le
code le nom d'une section d'un fichier.ini. Si on utilise les api pour
gérer les fichiers ini et que l'on édite le nom de la section il y aura une
nouvelle section avec le nom corriger.
Dans ton algo, tu lis l'entièreté du fichier dans un buffer pour ensuite aller réecrire l'entireté du fichier sur le disque... Pas très top, alors qu'on ne désire modifier qu'une seule ligne. Pourquoi ne pas bénéficier des fonctions de lecture séquentielle offertes pas VB et ne réécrire qu'une seule ligne dans le fichier (bon bien sûr tout ce qui suit sera rrécrit aussi, mais au moins pas ce qui se trouve avant).
Dans ton algo, tu lis l'entièreté du fichier dans un buffer pour ensuite aller
réecrire l'entireté du fichier sur le disque... Pas très top, alors qu'on ne
désire modifier qu'une seule ligne. Pourquoi ne pas bénéficier des fonctions
de lecture séquentielle offertes pas VB et ne réécrire qu'une seule ligne dans
le fichier (bon bien sûr tout ce qui suit sera rrécrit aussi, mais au moins
pas ce qui se trouve avant).
Dans ton algo, tu lis l'entièreté du fichier dans un buffer pour ensuite aller réecrire l'entireté du fichier sur le disque... Pas très top, alors qu'on ne désire modifier qu'une seule ligne. Pourquoi ne pas bénéficier des fonctions de lecture séquentielle offertes pas VB et ne réécrire qu'une seule ligne dans le fichier (bon bien sûr tout ce qui suit sera rrécrit aussi, mais au moins pas ce qui se trouve avant).
En général les fichiers ini ne sont pas de tailles importantes ! Je pense que cela ne changerait pas grand choses aux performances. De plus je ne vois pas trop comment tu irais réecrire une seule ligne car elles sont toutes de tailles différentes... Il est en outre possible que la nouvelle ligne à réecrire ait une taille différente...
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Pierre Alexis [MVP] a écrit :
Salut Nicols,
Dans ton algo, tu lis l'entièreté du fichier dans un buffer pour ensuite aller réecrire l'entireté du fichier sur le disque... Pas très top, alors qu'on ne désire modifier qu'une seule ligne. Pourquoi ne pas bénéficier des fonctions de lecture séquentielle offertes pas VB et ne réécrire qu'une seule ligne dans le fichier (bon bien sûr tout ce qui suit sera rrécrit aussi, mais au moins pas ce qui se trouve avant).
Salut,
En général les fichiers ini ne sont pas de tailles importantes ! Je pense
que cela ne changerait pas grand choses aux performances. De plus je ne vois
pas trop comment tu irais réecrire une seule ligne car elles sont toutes de
tailles différentes... Il est en outre possible que la nouvelle ligne à
réecrire ait une taille différente...
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Pierre Alexis [MVP] <alexispierre@hotmail.com> a écrit :
Salut Nicols,
Dans ton algo, tu lis l'entièreté du fichier dans un buffer pour
ensuite aller réecrire l'entireté du fichier sur le disque... Pas
très top, alors qu'on ne désire modifier qu'une seule ligne. Pourquoi
ne pas bénéficier des fonctions de lecture séquentielle offertes pas
VB et ne réécrire qu'une seule ligne dans le fichier (bon bien sûr
tout ce qui suit sera rrécrit aussi, mais au moins pas ce qui se
trouve avant).
En général les fichiers ini ne sont pas de tailles importantes ! Je pense que cela ne changerait pas grand choses aux performances. De plus je ne vois pas trop comment tu irais réecrire une seule ligne car elles sont toutes de tailles différentes... Il est en outre possible que la nouvelle ligne à réecrire ait une taille différente...
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Pierre Alexis [MVP] a écrit :
Salut Nicols,
Dans ton algo, tu lis l'entièreté du fichier dans un buffer pour ensuite aller réecrire l'entireté du fichier sur le disque... Pas très top, alors qu'on ne désire modifier qu'une seule ligne. Pourquoi ne pas bénéficier des fonctions de lecture séquentielle offertes pas VB et ne réécrire qu'une seule ligne dans le fichier (bon bien sûr tout ce qui suit sera rrécrit aussi, mais au moins pas ce qui se trouve avant).
Pierre Alexis [MVP]
Salut Nicolas,
Tu as écrit :
En général les fichiers ini ne sont pas de tailles importantes ! Je pense que cela ne changerait pas grand choses aux performances. De plus je ne vois pas trop comment tu irais réecrire une seule ligne car elles sont toutes de tailles différentes... Il est en outre possible que la nouvelle ligne à réecrire ait une taille différente...
Oui sorry j'oubliais que c'est pas possible en VB de réécrire une seule ligne. My mistake.
En général les fichiers ini ne sont pas de tailles importantes ! Je pense
que cela ne changerait pas grand choses aux performances. De plus je ne vois
pas trop comment tu irais réecrire une seule ligne car elles sont toutes de
tailles différentes... Il est en outre possible que la nouvelle ligne à
réecrire ait une taille différente...
Oui sorry j'oubliais que c'est pas possible en VB de réécrire une seule ligne.
My mistake.
En général les fichiers ini ne sont pas de tailles importantes ! Je pense que cela ne changerait pas grand choses aux performances. De plus je ne vois pas trop comment tu irais réecrire une seule ligne car elles sont toutes de tailles différentes... Il est en outre possible que la nouvelle ligne à réecrire ait une taille différente...
Oui sorry j'oubliais que c'est pas possible en VB de réécrire une seule ligne. My mistake.
L'inquiétude de Pierre face aux différents attributs du fichier qui sont perdu lorsqu'on le recréer de manière standard étant très compréhensible, j'ai fouillé un peu les fonctions offertes, je suis tomber sur la fonction ReplaceFile() dans kernel32.dll.. elle permet de remplacer un fichier par autre en préservant les droits de partage, de sécurité, la date de création, etc.. (en plus de permettre la création d'un back-up de l'ancien fichier).
Le seul hic c'est qu'elle n'est disponible que pour Windows XP ou Windows 2000 Professionnel.. il faudrait donc codé une fonction équivalente pour les autres O/S (ce qui doit surement déjà exister quelque part)
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Pierre Alexis [MVP]" a écrit dans le message de news:%23%
Salut Nicolas,
Tu as écrit :
> En général les fichiers ini ne sont pas de tailles importantes ! Je
pense
> que cela ne changerait pas grand choses aux performances. De plus je ne
vois
> pas trop comment tu irais réecrire une seule ligne car elles sont toutes
de
> tailles différentes... Il est en outre possible que la nouvelle ligne à > réecrire ait une taille différente...
Oui sorry j'oubliais que c'est pas possible en VB de réécrire une seule
L'inquiétude de Pierre face aux différents attributs du fichier qui sont
perdu lorsqu'on le recréer de manière standard étant très compréhensible,
j'ai fouillé un peu les fonctions offertes, je suis tomber sur la fonction
ReplaceFile() dans kernel32.dll.. elle permet de remplacer un fichier par
autre en préservant les droits de partage, de sécurité, la date de création,
etc.. (en plus de permettre la création d'un back-up de l'ancien fichier).
Le seul hic c'est qu'elle n'est disponible que pour Windows XP ou Windows
2000 Professionnel.. il faudrait donc codé une fonction équivalente pour les
autres O/S (ce qui doit surement déjà exister quelque part)
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Pierre Alexis [MVP]" <alexispierre@hotmail.com> a écrit dans le message de
news:%23%230unPNaEHA.3512@TK2MSFTNGP12.phx.gbl...
Salut Nicolas,
Tu as écrit :
> En général les fichiers ini ne sont pas de tailles importantes ! Je
pense
> que cela ne changerait pas grand choses aux performances. De plus je ne
vois
> pas trop comment tu irais réecrire une seule ligne car elles sont toutes
de
> tailles différentes... Il est en outre possible que la nouvelle ligne à
> réecrire ait une taille différente...
Oui sorry j'oubliais que c'est pas possible en VB de réécrire une seule
L'inquiétude de Pierre face aux différents attributs du fichier qui sont perdu lorsqu'on le recréer de manière standard étant très compréhensible, j'ai fouillé un peu les fonctions offertes, je suis tomber sur la fonction ReplaceFile() dans kernel32.dll.. elle permet de remplacer un fichier par autre en préservant les droits de partage, de sécurité, la date de création, etc.. (en plus de permettre la création d'un back-up de l'ancien fichier).
Le seul hic c'est qu'elle n'est disponible que pour Windows XP ou Windows 2000 Professionnel.. il faudrait donc codé une fonction équivalente pour les autres O/S (ce qui doit surement déjà exister quelque part)
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Pierre Alexis [MVP]" a écrit dans le message de news:%23%
Salut Nicolas,
Tu as écrit :
> En général les fichiers ini ne sont pas de tailles importantes ! Je
pense
> que cela ne changerait pas grand choses aux performances. De plus je ne
vois
> pas trop comment tu irais réecrire une seule ligne car elles sont toutes
de
> tailles différentes... Il est en outre possible que la nouvelle ligne à > réecrire ait une taille différente...
Oui sorry j'oubliais que c'est pas possible en VB de réécrire une seule
Une solution serait d'employer SetEndOfFile après avoir lu (ReadFile), remplacé et écrit(WriteFile) par APIs...
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Zoury" a écrit dans le message de news:
L'inquiétude de Pierre face aux différents attributs du fichier qui sont perdu lorsqu'on le recréer de manière standard étant très compréhensible, j'ai fouillé un peu les fonctions offertes, je suis tomber sur la fonction ReplaceFile() dans kernel32.dll.. elle permet de remplacer un fichier par autre en préservant les droits de partage, de sécurité, la date de création, etc.. (en plus de permettre la création d'un back-up de l'ancien fichier).
Hello,
Une solution serait d'employer SetEndOfFile après avoir lu (ReadFile),
remplacé et écrit(WriteFile) par APIs...
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:OShas0NaEHA.3112@tk2msftngp13.phx.gbl
L'inquiétude de Pierre face aux différents attributs du fichier qui
sont perdu lorsqu'on le recréer de manière standard étant très
compréhensible, j'ai fouillé un peu les fonctions offertes, je suis
tomber sur la fonction ReplaceFile() dans kernel32.dll.. elle permet
de remplacer un fichier par autre en préservant les droits de
partage, de sécurité, la date de création, etc.. (en plus de
permettre la création d'un back-up de l'ancien fichier).
Une solution serait d'employer SetEndOfFile après avoir lu (ReadFile), remplacé et écrit(WriteFile) par APIs...
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Zoury" a écrit dans le message de news:
L'inquiétude de Pierre face aux différents attributs du fichier qui sont perdu lorsqu'on le recréer de manière standard étant très compréhensible, j'ai fouillé un peu les fonctions offertes, je suis tomber sur la fonction ReplaceFile() dans kernel32.dll.. elle permet de remplacer un fichier par autre en préservant les droits de partage, de sécurité, la date de création, etc.. (en plus de permettre la création d'un back-up de l'ancien fichier).
Fournier Raymond
"François Picalausa" wrote in news:OuApn4NaEHA.2016 @TK2MSFTNGP09.phx.gbl:
Hello,
Une solution serait d'employer SetEndOfFile après avoir lu (ReadFile), remplacé et écrit(WriteFile) par APIs...
Merci a tous pour votre aide.
Raymond Fournier
"François Picalausa" <fpicalausa@chez.com> wrote in news:OuApn4NaEHA.2016
@TK2MSFTNGP09.phx.gbl:
Hello,
Une solution serait d'employer SetEndOfFile après avoir lu (ReadFile),
remplacé et écrit(WriteFile) par APIs...