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 :

Extraire le nom du fichier et sauvegarde dans un fichier ini


Sujet :

Delphi

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 449
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 449
    Points : 1 335
    Points
    1 335
    Par défaut Extraire le nom du fichier et sauvegarde dans un fichier ini
    Bonjour à toutes et à tous,

    Je dois charger un fichier *.wav et afficher uniquement le nom, puis le sauver dans un fichier *.ini afin de le restituer.

    En mode test, le play fonctionne puisque le TopenDialog garde son chemin.

    Le problème est qu'à la réouverture de l'application si le Tedit affiche bien rien le nom du fichier (grace au fichier *.ini), le test play ne fonctionne pas car forcément le chemin n'existe plus et n'a pas pu être sauvé avec ma méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TSetUp.bwavClick(Sender: TObject);
    Var
    Fname : String;
    begin
     
      if not OpenDialog1.Execute then exit else
      begin
     Fname := extractfilename(OpenDialog1.FileName);
       //Fname := (OpenDialog1.FileName);
       EMessage.Text:=FName; 
       end;
       end;
    Fichier écriture *.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FichierIni.WriteString('SETUP','VocalAlertFile',EMessage.Text);
    Fichier lecture *.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EMessage.Text := FichierIni.ReadString('SETUP','VocalAlertFile','');
    Comment faire en sorte que d'afficher le nom du fichier et permettre de le lire lors d'une réouverture de l'application sans utiliser deux Tedit.

    Merci d'avance,

    @+,

    Cincap

  2. #2
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Pourquoi pas une propriété...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        fWav: string;
        function getWav: string;
      public
        property WaveFilename: string read getWav write fWav;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function TfrmMain.getWav: string;
    begin
      Result := ExtractFileName(fWav)
    end;
    Pour le stockage dans ini.. tu tapes sur fWav...
    pour l'affichage dans l'edit, tu tapes sur WaveFilename...

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 449
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 449
    Points : 1 335
    Points
    1 335
    Par défaut
    @ Whiler, merci de ta réponse rapide, par contre je ne vois pas ou placer ton code dans ma procedure de chargement du fichier *.wav et de sa sauvegarde dans le fichier *.ini qui comporte d'autres renseignements.

    J'ai testé d'une manière peu élégante avec deux Tedit, c'est ok mais......

    @+,

    Cincap

  4. #4
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    TSetUp c'est quoi ? ta fiche, une unité dédiée ?

  5. #5
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Dans le genre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    type
      TSetUp = class(TForm)
        ...
      private
        ...
        fWav: string;
        function getWav: string;
      public
        ...
        property WaveFilename: string read getWav write fWav;
      end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TSetUp.bwavClick(Sender: TObject);
    begin
      if OpenDialog1.Execute then
      begin
        WaveFilename := OpenDialog1.FileName;
        EMessage.Text:= WaveFilename; 
      end;
    end;
    Fichier écriture *.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FichierIni.WriteString('SETUP','VocalAlertFile',fWav);
    Fichier lecture *.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WaveFilename := FichierIni.ReadString('SETUP','VocalAlertFile',''); 
    EMessage.Text := WaveFilename;

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 449
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 449
    Points : 1 335
    Points
    1 335
    Par défaut
    @ Whiler,

    TSetUp c'est quoi ? ta fiche, une unité dédiée ?
    Le nom de ma fiche.

    En jouant avec la propriété Filename du TopenDialog, j'ai l'affichage convenu et la sauvegarde dans le fichier *.ini avec le chemin complet du fichier.

    Je cloture donc ce topic.

    Merci à toi,

    @+,

    Cincap

  7. #7
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Si ton OpenDialog1 ne sert que pour ouvrir ce fichier... c'est le plus simple...

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 449
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 449
    Points : 1 335
    Points
    1 335
    Par défaut
    @ Whiler,

    Si ton OpenDialog1 ne sert que pour ouvrir ce fichier... c'est le plus simple...
    En effet, il ne sert qu'à cela si on veut changer le sons de base.

    Sinon je pouvais aussi relire le fichier depuis son chemin et dossier, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sndPlaySound(PChar(chappli+'Sons\'+EMessage.Text), SND_SYNC);
    Par contre, j'ai quand même pris le temps de tester ta dernière suggestion et sur D6, j'ai une erreur sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    type
      TSetUp = class(TForm)
        ...
      private
        ...
        fWav: string;
        function getWav: string; //ICI
      public
        ...
        property WaveFilename: string read getWav write fWav;
      end;
    A quoi c'est dû ?

    @+,

    Cincap

  9. #9
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Tu as bien ça dans l'implémentation ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function TSetUp.getWav: string;
    begin
      Result := ExtractFileName(fWav)
    end;
    Quelle est l'erreur ?

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 449
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 449
    Points : 1 335
    Points
    1 335
    Par défaut
    Bonjour à toutes et à tous,

    @ Whiler, avec tous mes essais, il existait dans ma source un meli melo, maintenant tout est ok, ta sugestion est élégante et je la retiens.

    Grand merci à toi,

    @+,

    Cincap

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/04/2015, 17h37
  2. Recherche dans un fichier impossible enregistré dans un fichier
    Par cdjkhdjlhxjklnjskznj dans le forum Langage
    Réponses: 19
    Dernier message: 03/12/2014, 00h09
  3. Sauvegarder dans un fichier en C
    Par Gryzzly dans le forum C
    Réponses: 10
    Dernier message: 14/12/2005, 16h07
  4. Réponses: 2
    Dernier message: 16/06/2005, 14h48
  5. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05

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