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 :

Acces Direct à un fichier


Sujet :

Ada

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Acces Direct à un fichier
    Bonjour à tous, cela fait quelques temps , que je travaille sur un programme qui simulerait l'accès directe à un fichier.
    Pour le moment, je n'ai réussi qu'à ouvrir le fichier, afficher quelques lignes et indiquer qu'un certains caractère était le marqueur de fin.
    Mais la je commence à péter une durite xD
    Je n'arrive pas du tout à utiliser les fonctions Read et Write.

    Donc si vous avez une solution en stock, je suis preneur.
    Je suis co très souvent , donc si vous voulez des précisions sur cette grosse épine qui est dans mon pied, je suis disponible



    Cordialement
    Yoshi

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour.

    Je suppose que tu utilise la bibliothèque générique Ada.Direct_IO que tu as du instancier avec un type de ton chois.
    En suite pour accéder directement à un enregistrement en particulier tu doit utiliser les paramètre From et To respectivement pour les procedure Read et Write dont voici les prototypes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       procedure Read
         (File : File_Type;
          Item : out Element_Type;
          From : Positive_Count);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       procedure Write
         (File : File_Type;
          Item : Element_Type;
          To   : Positive_Count);
    Quelles sont tes difficultés.. Peux-tu nous montrer le bout de code concerné ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Mon soucis est que je ne ne suis vraiment pas douer avec les packages, et je ne vois pas quel code va dans quel partie et comment l'appeler :s

    Mon code est très moche, j'ai bidouiller quelques choses mais c'est pas le programme attendu :/
    Je te l'envoie par mp si tu veux

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Yoshi-07 Voir le message
    Mon soucis est que je ne ne suis vraiment pas douer avec les packages, et je ne vois pas quel code va dans quel partie et comment l'appeler :s

    Mon code est très moche, j'ai bidouiller quelques choses mais c'est pas le programme attendu :/
    Je te l'envoie par mp si tu veux
    Comme tu veux !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ah, mais tu peux pas faire ça comme ça.
    Pour écrire dans un fichier, il est nécessaire d'ouvrir le fichier en mode écriture.
    Et pour lire en mode lecture.
    Comme le mode In_out n'est pas disponible avec la bibliothèque Ada .Text_IO tu est obliger d'ouvrir en In_File pour lire, et en Out_File pour écrire.
    Donc, ton programme est mal Conçus dans sont ensemble.

  6. #6
    Invité
    Invité(e)
    Par défaut
    A moins que je ne connaisse pas la puissance de reset, qui semblerait, d'après ton utilisation prendre un mode, c'est à dire que tu aurais simplement oublié de faire un reset(File, out) avant d'écrire... Entre autre comme par exemple l'utilisation de ta première variable Line_Length qui n'est pas déclaré.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Pourrais tu alors me mettre sur la voie ?
    Car la je suis vraiment paumé

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ca dépend de ce à quoi tu souhaite parvenir.

    Je ne le sais toujours pas.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Mon but est de :
    Pouvoir ouvrir un fichier
    Pouvoir le lire le fichier ( en tenant compte de l'index)
    Pouvoir ecrire dans le fichier ( en tenant compte de l'index)
    Et fermer le programme.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Yoshi-07 Voir le message
    Mon but est de :
    Pouvoir ouvrir un fichier
    Pouvoir le lire le fichier ( en tenant compte de l'index)
    Pouvoir ecrire dans le fichier ( en tenant compte de l'index)
    Et fermer le programme.
    je te propose alors de faire un tableau en 2 d dans lequel tu charge ton fichier et dans lequel tu te déplace à volonté pour lire et écrire, puis sauvegarder puis fermer le fichier.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Pourquoi pas, tu t'y connais plus que moi, donc je vais te faire confiance ^^ Et accepter ta proposition

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Yoshi-07 Voir le message
    Pourquoi pas, tu t'y connais plus que moi, donc je vais te faire confiance ^^ Et accepter ta proposition
    Si tu as des difficultés, tant que je peux, je t'aiderai.

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Déja comme crée tu un tableau 2D, comment le déclaré, l'utilisé ?
    Car je ne connais que le tableau simple mwa

  14. #14
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    -- Déclaration d'un tableau non contraint à 2 dimensions --
     
    -- Déclaration du type T_Tableau_2D.
     type T_Tableau_2D is (positive range <>, positive range <>);
     
    --Déclaration des contraintes.
     Line_Length : constant positive := 256; -- Par exemple.
     Page_Length : constant positive := 1204; - Par exemple.
    -- Déclaration de Mon_Tableau contraint et initialisé.
     Mon_Tableau_2D : T_Tableau_2D(1..Line_Length, 1..Page_Length) := 
        (others => character'val(32), others => characters'val(32));
    Ou alors...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    -- Déclaration d'un tableau contraint à 2 dimensions --
     
    --Déclaration des contraintes.
     Line_Length : constant positive := 256; -- Par exemple.
     Page_Length : constant positive := 1204; - Par exemple.
     
    -- Déclaration de Mon_Tableau contraint et initialisé.
     type T_Tableau_2D is (1..Line_Length, 1..Page_Length);
     Mon_Tableau_2D : T_Tableau_2D := 
        (others => character'val(32), others => characters'val(32));
    Character'val(32) est le caractère 'espace'.

    Si tu veux pas trop te casser la tête par la suite, tu peux faire pile poil un tableau au dimensions de ton terminal.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Pardon, enfin j'espère que tu aura corrigé par toi même...
    J'ai oublier le type du contenu du tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    -- Déclaration d'un tableau non contraint à 2 dimensions --
     
    -- Déclaration du type T_Tableau_2D.
     type T_Tableau_2D is (positive range <>, positive range <>) of character;
      - Si toutefois tu veux des characters. Tu peux aussi mettre des Wide_Characters.
     
    --Déclaration des contraintes.
     Line_Length : constant positive := 256; -- Par exemple.
     Page_Length : constant positive := 1204; - Par exemple.
    -- Déclaration de Mon_Tableau contraint et initialisé.
     Mon_Tableau_2D : T_Tableau_2D(1..Line_Length, 1..Page_Length) := 
        (others => character'val(32), others => characters'val(32));

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    A quoi sert un tableau 2D ?
    Il peut accueillir du text ?
    Explique un peu plus en détails si possible

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Yoshi-07 Voir le message
    A quoi sert un tableau 2D ?
    Il peut accueillir du text ?
    Explique un peu plus en détails si possible
    Trois messages au dessus.

    je te propose alors de faire un tableau en 2 d dans lequel tu charge ton fichier et dans lequel tu te déplace à volonté pour lire et écrire, puis sauvegarder puis fermer le fichier.

  18. #18
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Oui mais comment tu charge le fichier dans ton tableau ?
    Et comment tu fais pour écrire dans le tableau ? tu crée un nouvelle case ?

  19. #19
    Invité
    Invité(e)
    Par défaut
    Tu peux lire caractère par caractère et mettre ceux-ci dans le tableau l'un après l'autre, ou lire une chaîne de caractères qui est un tableau de 1 dimension de caractères et mettre la chaîne d'un coup dans le tableau.

    Pour écrire dans un tableau tu à deux index puisque qu'il est de dimension deux,
    index_line : poositive := 1;
    index_page : positive := 1;

    --Pour un caractère --
    Mon_Tableau_2_D(index_Line, index_Page) := Le_Caractère;

    ou

    -- Pour une chaîne --
    Mon_Tableau_2_D(index_line..index_line+(chaîne_length-1), index_page) := chaîne(1..chaine_length);

  20. #20
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Tu n'aurais pas un exemple de prog pour me montrer ?
    Car je vois pas comment ca fonctionne avec deux dimensions, et quel fonctions utilise tu pour charger les Chaines de caractères du fichier vers le tableau.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/11/2007, 14h42
  2. [Upload] Interdire accès direct à un fichier
    Par Nasky dans le forum Langage
    Réponses: 5
    Dernier message: 12/08/2007, 23h38
  3. Interdire l'acces directe aux fichiers php
    Par Never dans le forum Apache
    Réponses: 4
    Dernier message: 04/12/2006, 21h00
  4. htaccess : interdire l'accès direct aux fichiers php
    Par Cédricss dans le forum Apache
    Réponses: 5
    Dernier message: 08/10/2006, 11h29
  5. [TOMCAT] Comment empêcher l'accès direct aux fichiers
    Par thomine dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 14/04/2005, 10h19

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