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

Delphi Discussion :

TFileStream et propriété FileName sous Delphi 7


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Par défaut TFileStream et propriété FileName sous Delphi 7
    Bonsoir,

    J'ai un projet développé sous Delphi 2005. Je dois absolument le passer sous Delphi 7 mais j'ai un problème avec la classe "TFileStream". Apparemment sous Delphi 2005, cette classe dispose d'une propriété "FileName" qui n'existe pas sous Delphi 7.

    J'ai remarqué la présence de la propriété "Handle", qui dois pouvoir me permettre d'écrire / lire dans le fichier. Pensez vous qu'il soit possible de récupérer via la propriété "Handle", le nom du fichier source utilisé par la classe "FileStream"?

    Merci,
    Bonne soirée.

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Je ne comprends pas ta question ....

    Sous D7, Le nom du fichier est passé en parametre du constructor d'un TFileStream.

    La syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Var FS : TFileStream;
     
    FS := TFileStream.Create('MonFichier.dat', fmCreate); 
    FS.Write(...);
    [...]

  3. #3
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut

    Citation Envoyé par Clorish
    Je ne comprends pas ta question ....
    je crois comprendre le problème.
    dans D7, la classe TFileStream n'a pas de propriété Filename qui sauvegarde le nom du fichier ouvert tandis que c'est le cas dans D2005. le problème est que tu as commencé un projet sous D2005 utilisant cette classe et certainement cette propriété, et que tu dois finir le projet pour des raisons obscures sous D7.
    ca fait bien 20mn que je parcoure les sources de l'unité classes où est déclarée TFileStream (je suis sous D7). la classe utilise la fonction API CreateFile pour créer/ouvrir le fichier, et stocke son handle.
    dans l'API win$, j'ai beau chercher je n'ai pas encore trouvé une fonction me permettant de retrouver le nom d'un fichier à partir de son handle.

    bon une piste de solution:
    regarde les sources de TFileStream sous D2005 et vois si tu ne peux pas créer une version héritée de TFileStream sous D7 qui permettrait d'avoir les mêmes propriétés et méthodes que sous D2005.

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par evarisnea
    bon une piste de solution:
    regarde les sources de TFileStream sous D2005 et vois si tu ne peux pas créer une version héritée de TFileStream sous D7 qui permettrait d'avoir les mêmes propriétés et méthodes que sous D2005.
    C'est mon jour de bonté
    En fait c'est tous les jours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    TFileStreamEx = Class(TFileStream)
    Private
      FFilename : String;
    Public
      Constructor Create(Const Filename : String; Mode : Word); Override;
      Property Filename : String Read FFilename;
    End;
     
    Construrctor TFileStreamEx.Create(Const Filename : String; Mode : Word);
    Begin
    Inherited Create(Filename, Mode);
    Self.FFilename := Filename;
    End;
    C'est le B-A-BA de la personnalisation de composants et le premier pas vers la creation de composants. Une fois que tu auras compris le mecanisme, tu t'ouvriras de sacrees portes !

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut
    +1 clorish
    j'aurais du deviner cette implémentation !
    Citation Envoyé par Clorish
    C'est le B-A-BA de la personnalisation de composants et le premier pas vers la creation de composants. Une fois que tu auras compris le mecanisme, tu t'ouvriras de sacrees portes !
    je suis bien d'accord.

    hs:
    Citation Envoyé par Clorish
    C'est mon jour de bonté
    En fait c'est tous les jours
    Citation Envoyé par Clorish
    Si-Non-Cham-Pi-Gnon !!!

Discussions similaires

  1. Corba sous Delphi et ORB alternatif
    Par Inpriser dans le forum CORBA
    Réponses: 4
    Dernier message: 18/08/2003, 18h42
  2. retrouver les compsants FASTNET sous Delphi 7
    Par fandor7 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/06/2003, 18h11
  3. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  4. calcul sous delphi
    Par djedje-08 dans le forum Langage
    Réponses: 5
    Dernier message: 08/02/2003, 17h39
  5. Réponses: 4
    Dernier message: 27/03/2002, 11h03

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