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

Free Pascal Discussion :

Suppression des messages hint pour des types File [Free Pascal]


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut Suppression des messages hint pour des types File
    Bonjour,

    j'ai deux variables de type file. J'ai le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Hint: Local variable "lF" does not seem to be initialized
    Hint: Local variable "lFileOut" does not seem to be initialized
    Comment faire pour les initialiser à une valeur invalide (j'ai essayé nil ça ne fonctionne pas) pour :
    1 - supprimer les messages,
    2 - savoir si les variables ont été initialisée avec AssignFile() (<> de la valeur d'initialisation).

    J'ai pourtant entouré mon code d'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try
    except
       on EInOutError do ;
    end ;
    Merci.

  2. #2
    Membre chevronné

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Par défaut
    Ces messages ne sont pas des messages d'erreur mais des conseils (hint)

    Si j'ai bien compris, tu cherches à savoir au cours de ton programme quel fichier a été assigné à quelle variable....
    A ma connaissance, le type file ne stocke pas le nom du fichier assigné, donc il semble difficile de le connaitre plus tard dans le code.

    Tu peux toujours créer un objet avec sa propre procédure qui conserve le nom du fichier assigné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    type
     TMyFile = Object
       FileName : string;
       FileVar : file;
       procedure AssignMyFile (s: string);
       end;
    var
      lf Tmyfile;
     
    procedure Tmyfile.AssignMyfile (s: string);
    begin
      assignfile(self.fileVar, s);
      self.FileName := s;
    end;
    si tu assignes tes fichiers ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lf.AssignMyFile('c:\test.txt');
    tu peux à chaque instant savoir quel est le fichier assigné


    Bonne programmation

  3. #3
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    Citation Envoyé par Clandestino Voir le message
    Si j'ai bien compris, tu cherches à savoir au cours de ton programme quel fichier a été assigné à quelle variable....
    Non, en fait je voudrais simplement savoir si la varaible lF est assigné et donc si derrière il y a un fichier sans savoir nécessairement lequel est-ce.

  4. #4
    Membre chevronné

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Par défaut
    lf est assignée si tu lui a transmis une string, indépendemment de l'existence ou non d'un fichier correspondant à cette string.
    Contrairement à ce que je pensais, tu as accès au nom du fichier assigné sans créer d'objet supplémentaire via le code :
    Un simple test sur la valeur de cette expression te renseignera sur l'assignation (ou non) de lf

    Par contre pour tester l'existence du fichier spécifié par l'assignation tu disposes de la fonction FileExists dans sysutils.

    bref, un bout de code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if fileexists(filerec(f).name)
    devrait resoudre ton problème

    Bonne continuation

  5. #5
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    Bonne astuce.

    Mais ça ne supprime pas le Hint, c'est embêtant car je cherche à ce qu'il n'y ait pas de message lors de la compilation.

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 042
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Si tu veux absolument empêcher les hints sur cette portion de code, tu peux encadrer celui-ci avec des directives de compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {$HINTS OFF}
       ... bloc
       ... de
       ... code
    {$HINTS ON}
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/04/2012, 16h41
  2. ValidationSummary pour des messages
    Par DranDane dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2009, 15h19
  3. Réponses: 5
    Dernier message: 06/01/2009, 11h22

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