Accueil | Aide en ligne | Annuaire | Sécurité | Articles | Astuces | Téléchargements | Association 


Mon compte SOS Ordi

Vous n'êtes pas identifié
[-> S'inscrire à SOS Ordi
[-> Mot de passe perdu ?
S'identifier


Rechercher sur SOS Ordi

Ok

Dans





 Catégories de l'aide en ligne

 Aide en ligne


 Saviez vous que ...

Pour soutenir l'association et payer le serveur vous pouvez faire des dons


 Partenaires

  SOS Ordi > Aide en ligne > Logiciel > Développement > pascal fichiers "file not open"

pascal fichiers "file not open"

4 réponse(s)
dont 2 ont aidé chahnou à résoudre son problème

  Problème résolu posté le 11/04/2009 à 17:42
Profil Configuration PC
chahnou


poste-de-travail_la-fouine-du-net_divers
État : Absent
Bonjour,
j'ai écris un programme en pascal et voilà le message qui s'affiche au niveau ***:

program fichier;

type enr=record
fonction:string[18];
grade:string[20];
sexe:char;
end;
fenr= file of enr;
var
emp:enr;i:integer;
femp:fenr;
rep:string[3];
procedure nbesf(var k:integer );
begin
reset(femp);
*** while not eof(femp) do
begin
read(femp,emp);
if emp.fonction='enseignant'then if emp.sexe='f' then k:=k+1;
close(femp);
writeln('le nombres d''enseignantes est :',k);
end;
end;
begin
assign(femp,'c:\madjid.txt');
rewrite(femp);
repeat
with emp do
begin
write('fonction:');readln(fonction);
write('sexe');readln(sexe);
end;
write(femp,emp);
write('vous avez fini ??!!!!!');
readln(rep);
until rep='oui';
reset(femp);
nbesf(i);
readln;end.

donc , la compilation et l'exécution se font normalement mais quand on repond oui , c'est à dire en sortant de la boucle , il sort et affiche l'erreur "file not open"

merci pour vos réponses

   

Bas de page 


Information

Pour participer vous devez d'abord être membre ou identifié :
[-> M'identifier
[-> Je ne suis pas membre SOS Ordi, je souhaite m'inscrire
[-> J'ai perdu mon mot de passe


  Réponse postée le 11/04/2009 à 19:11
Profil du membre Configuration PC
demonkill
Modérateur


État : Absent
Bonsoir,

Pitié espace, indente et commente ton code pour mes pauvres yeux ... eek.gif

Le pb vient de la boucle dans la procédure nbesf ou tu ferme ton fichier dans la boucle.

Ce qui donne :
Code :

type enr = record
--fonction:string[18];
--grade:string[20];
--sexe:char;
end;

fenr = file of enr;

var
--emp:enr;i:integer;
--femp:fenr;
--rep : string[3];

procedure nbesf(var k:integer );
begin
--reset(femp);
--while not eof(femp) do
--begin
----read(femp,emp);
----if emp.fonction = 'enseignant' then
------if emp.sexe = 'f' then k := k+1;
--end;
--close(femp);
--writeln('le nombres d''enseignantes est :',k);
end;

begin
--assign(femp,'c:\madjid.txt');
--rewrite(femp);
--repeat
----with emp do
----begin
------write('fonction:');readln(fonction);
------write('sexe');readln(sexe);
----end;
----write(femp,emp);
----write('vous avez fini ??!!!!!');
----readln(rep);
--until rep='oui';

--reset(femp);
--nbesf(i);
--readln;
end.

Les "-" étant à remplacer par des espaces ...

Edité par demonkill le 11/04/2009 à 19:17



Merci de :
* Lire la charte : http://www.sosordi.net/Depannage/Charte.html . Ne pas poser 2 fois la même question
* Rester courtois, éviter les majuscules et employer un langage clair

  Réponse postée le 11/04/2009 à 20:10
Profil du membre Configuration PC
chahnou



État : Absent
merci bcp pour votre aide ,, le pb c'était qu'à chaque fois il fermer le fichier et comme reset(femp) n'est pas dans la boucle alors il affiché file NOT OPEN...

  Réponse postée le 11/04/2009 à 20:10
Profil du membre Configuration PC
Robot SOSORDI



État : Absent
Réponse automatique :

Cette question est résolue

  Réponse postée le 11/04/2009 à 20:34
Profil du membre Configuration PC
demonkill
Modérateur


État : Absent
Bonsoir,

En effet mais inutile de fermer et ré-ouvrir le fichier dans la boucle à chaque fois => Autant le mettre "autour" comme je te l'ai mis ...

Merci de :
* Lire la charte : http://www.sosordi.net/Depannage/Charte.html . Ne pas poser 2 fois la même question
* Rester courtois, éviter les majuscules et employer un langage clair



Haut de page 

 

Version 5.6 | Infos / Contacts | Partenariat | Publicité