PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → liberation d'un fichier externe
liberation d'un fichier externe
Débuté par Vincent Dupont, 22 déc. 2006 18:51 - 2 réponses
Posté le 22 décembre 2006 - 18:51
BOnjour,

je travail sur un fichier externe que je lit, puis que je doit supprimer par la suite.

Donc j'utilise idfichier = FOuvre(...)
ensuite je travail dessus
puis je le ferme avec FFerme(idfichier)
et ensuite je le supprime avec FSupprime(.......)

mais voila, impossible de le supprimer, la fermeture du fichier se passe sans encombre mais au moment de le supprimer, impossible, windev me dis que celui ci est deja utilisé.

et si j'essaie de le supprime sous windows, une erreur me dis que celui ci est deja utilisé par un autre processus, hors le fichier est bien fermé puisque si j'essai de le fermé 2 fois de suite, windev me dis que le fichier ne peux etre fermé puisqu'il n'est pas ouvert.

comment m'en sortir.

cordialement

VIncent
Posté le 22 décembre 2006 - 20:01
Salut !

On 22-Dec-2006, "Vincent Dupont" <vdupont@gmlog.fr> wrote:

BOnjour,

je travail sur un fichier externe que je lit, puis que je doit supprimer
par la suite.

Donc j'utilise idfichier = FOuvre(...)
ensuite je travail dessus
puis je le ferme avec FFerme(idfichier)
et ensuite je le supprime avec FSupprime(.......)

mais voila, impossible de le supprimer, la fermeture du fichier se passe
sans encombre mais au moment de le supprimer, impossible, windev me dis
que celui ci est deja utilisé.

et si j'essaie de le supprime sous windows, une erreur me dis que celui ci
est deja utilisé par un autre processus, hors le fichier est bien fermé
puisque si j'essai de le fermé 2 fois de suite, windev me dis que le
fichier ne peux etre fermé puisqu'il n'est pas ouvert.

comment m'en sortir.

cordialement



Ne ferais-tu pas avant le code ffouvre() un fcreation() ?
Si c'est le cas, ton fichier est ouvert 2 fois, une fois avec le fcreation()
et une fois avec le fouvre() ...
En fait, le fcreation() sufit il renvoie le hadnle() du fichier nouvellement
créé et tu peux donc utiliser ce handle dans les fonction fécrit(),
fécritligne() et fferme() ...
C'est un piège dans lequel on tombe souvent ...
:-)
En espérant que ce soit bien le problème...


--
Marcel Berman
Animateur de la section belge de WinDAsso
Posté le 23 décembre 2006 - 19:02
Bonjour,

J'ai eu un cas de figure similaire. Des tests que j'ai effectués, j'en ai conclu que c'était le système d'exploitation qui tardait à libérer le fichier. J'ai résolu ce problème, en vidant le fichier, plutôt qu'en l'effaçant. Il faut dire que j'utilisais chaque fois le même nom de fichier.

En espérant t'avoir fait progressé.


Pierre Devillers


Bonne Fêtes à tous ceux qui liront ce message