Francislaremote
Messages postés1Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention 6 novembre 2007
-
6 nov. 2007 à 17:56
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
6 nov. 2007 à 22:53
Bonjour,
J'ai programmé pendant deux ans sur Delphi mais pour divers raisons j'ai du arreter durant 5 année. Je m'y remets à présent mais non sans difficulté.
J'ai récuperé un bout de code très simple d'un de mes anciens programmes pour enregistrer le contenu d'un arbre dans un fichier, malheureusement il ne marche plus. Voici le code
procedure TForm1.WriteArbre (noeud : PArbre);
var
fichier : File of Tarbre;
arbre : TArbre ;
begin
Assignfile(fichier,'mpbdd.dat');
if FileExists('mpbdd.dat') then Reset(fichier)
else Rewrite(fichier);
Seek(fichier, FileSize(fichier));
arbre := noeud^;
Write(fichier,arbre);
CloseFile(fichier);
end;
Le programme plante à chaque fois lors du write avec l'erreur Einouterror (sauf lors du premier enregristrement si le fichier n'existe pas). File access denied. Pourtant le fichier n'est pas utilisé par un autre programme ou protégé, je n'utilise ce fichier à aucun autre endroit de monde code, donc il n'y a pas d'autre Assignfile qui ne serait pas fermé.
Si quelqu'un a une idée, c'est avec plaisir que je la lirai, merci
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 6 nov. 2007 à 22:53
Le fichier ne serait-il pas resté "locked" lors d'un précédent plantage ?
Deux solutions pour vérifier :
1- changer le nom du fichier de sortie et tester
2- redémarrer le système pour libérer les verrous et réessayer avec le même code.
Suggestion : toujours mettre les opérations d'écriture/lecture de fichier dans un bloc de protection try...finally...end avec, bien évidemment, le closefile dans la dernière partie.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.afipa.net/