IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ada Discussion :

Contrôle écrasement fichier


Sujet :

Ada

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Contrôle écrasement fichier
    Bonjour

    Voilà je suis étudiant et nous travaillons sur l'ada en ce moment. Et lors d'un tp que j'avais largement terminé je voulais aller plus loin. Le tp consistait en une manipulation d'un fichier constitué de données de type article et qu'il fallait mettre dans un autre fichier etc...

    Mais de mon côté, j'ai voulu faire en sorte que l'on puisse spécifier le nom du fichier. Mais le problème, lorsque l'on écrit 2 fois de suite le même nom de fichier, il écrase le précédent et pour ce faire j'ai voulu bricoler au niveau d'une exception Name_Error en essayant de l'ouvrir. Mais j'ai des petits problèmes au niveau du code .

    Tout d'abord, au niveau de la déclaration de l'exception, qui fonctionne mais qui me paraît étonnante. Parce que si je ne fais pas comme ça j'ai une erreur qui me dit
    Name_Error is not visible.
    Voilà je vous met le dit code à problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Name_Error   : exception renames Ada.IO_Exceptions.Name_Error;
     
     
    begin 
     
     
    ecrire("bonjour, que voulez vous faire ? "); A_LA_LIGNE;
    ecrire_ligne("1: Création");ecrire_ligne("2: Affichage");ecrire_ligne("3: Ajout et suppression");
    lire(choix);
     
     
     
    case choix is 
     
     
     
    when 1 =>
     
     
     
    	loop 
     		begin
    	ecrire_ligne("Quelle est le nom que vous voulez donner au fichier ? :>"); LIRE_TRANCHE(N_Fich,e);
     
    	P_Eclipses_Io.open(f1,P_Eclipses_Io.In_File,   N_Fich(1..e)&".dat") ;
     
     
    P_Eclipses_io.close(f1);
     
    	 exception
       	when Name_Error => 
    		ecrire_ligne(" il existe dèja ce fichier " );
     
     
              end;             
     
     
     
    	end loop;
    J'utilise un package étudiant, et les variables ont été déclarées plus haut.

    Merci d'avance de vos réponses.

  2. #2
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Je ne comprend pas vraiment l'utilité du "package étudiant". Quelle est l'utilité de faire une simple traduction des procédures et fonctions en français ?
    Mais bon ce n'est pas la question.


    Si tu veux que l'exception Name_Error soit visible, il te faut un with et un use pour le package Ada.IO_Exceptions puisque c'est dans ce package que semble être déclarée cette exception.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    oui oui je l'avais dèja fait mais sa ne change pas grand chose
    en fait je pense que mon problème réside dans la façon deprogrammer pour traiter le problème...

    donc je le repète je souhaite faire en gros un controle d'écrasement du fichier au final. C'est à dire qu'a chaque nouveau démarrage du programme on va saisir un nom ensuite je vais essayer d'ouvrir un fichier avec ce nom si sa genere une erreur celà signifie qu'il éxistait pas avant et donc il crée le fichier par la suite. SInon si il s'ouvre tranquillement il demande si on ecrase ce fichier, si oui et bein conserve la valeur de la variable N_Fich .

    voici mon entete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    with es_iut  ; use es_iut ;
    with Ada.IO_Exceptions;use Ada.IO_Exceptions;
     
    with P_Maj_Eclipses; use P_Maj_Eclipses ;
    l'interet du package étudiant et d'etre le plus proche des cours d'algo...

    oui c'est étrange....

  4. #4
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Je pense que le plus simple c'est de tester si le fichier existe déjà.

    Je n'ai pas trouvé de fonction prédéfini pour faire ça, mais ce n'est pas très difficile à coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	function File_Exists (Name : String) return Boolean is
    		File : File_Type;
    	begin
    		Open(File, In_File, Name);
    		Close(File);
    		return True; --  Si Open a pas levé l'exception, le fichier existe déjà
     
    	exception
    		when Name_Error => return False;
    	end File_Exists;
    Voilà.

    À noter que l'exception Name_Error est visible dans le package Text_IO. Peut-être qu'elle a un nom différent dans ton package étudiant. Jette un coup d'oeil dedans.


    PS : si l'intérêt du package étudiant c'est d'être plus proche de l'algo, pourquoi ne pas simplement faire de l'algo en anglais ? L'algo serait alors bien plus proche de tous les langages.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Celelibi
    PS : si l'intérêt du package étudiant c'est d'être plus proche de l'algo, pourquoi ne pas simplement faire de l'algo en anglais ? L'algo serait alors bien plus proche de tous les langages.
    Tout à fait d'accord

    Traduire les fonctions en français est complétement innutile, la syntaxe reste la même, les ";", les tests etc ... Donc vous ne vous approchez pas vraiment plus de l'algo

Discussions similaires

  1. Contrôle de fichiers
    Par claude_tech dans le forum Débuter
    Réponses: 6
    Dernier message: 06/05/2011, 00h38
  2. fenêtre confirmation écrasement fichier excel
    Par redstoff dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/01/2011, 09h48
  3. SSIS - Contrôle de fichier Excel & popup
    Par romu92 dans le forum SSIS
    Réponses: 0
    Dernier message: 18/09/2009, 09h41
  4. contrôle intégrité fichier zip
    Par tiboo dans le forum Modules
    Réponses: 1
    Dernier message: 17/12/2008, 21h49
  5. [Système]Contrôle chemin fichier
    Par deaqu1 dans le forum VBA Access
    Réponses: 5
    Dernier message: 09/04/2007, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo