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 :

Récupérer le nom du fichier .mp3 depuis un fichier texte D6 Win11 64bits !


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 582
    Par défaut Récupérer le nom du fichier .mp3 depuis un fichier texte D6 Win11 64bits !
    Bonjour à toutes et à tous,

    Je crée un fichier texte (Titre.txt) afin de vérifier le déroulement de l'extraction d'un fichier audio et j'aimerai bien récupérer le nom du fichier audio dans mon TEdit (Ednom.text).

    Contenu du fichier "Titre.txt" :

    [youtube] Extracting URL: https://www.youtube.com/watch?v=54hoKbTWon4
    [youtube] 54hoKbTWon4: Downloading webpage
    [youtube] 54hoKbTWon4: Downloading android player API JSON
    [info] 54hoKbTWon4: Downloading 1 format(s): 251
    [info] Downloading video thumbnail 45 ...
    [info] Writing video thumbnail 45 to: Audio\jm2023.webp
    [download] Audio\jm2023.mp3 has already been downloaded
    [ExtractAudio] Not converting audio Audio\jm2023.mp3; file is already in target format mp3
    [Metadata] Adding metadata to "Audio\jm2023.mp3"
    [ThumbnailsConvertor] Converting thumbnail "Audio\jm2023.webp" to png
    [EmbedThumbnail] ffmpeg: Adding thumbnail to "Audio\jm2023.mp3"
    Voici le code de mon test :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    var
    Contents:TStringList;
    sl: TStringList;
    find:boolean;
    i:integer;
     
    chaine, s, fini : string;
    begin
      Chaine := '[Metadata] Adding metadata to ''Audio\' ;
     
      chemin := chappli +'Audio\';
     
      sl:= TStringList.Create;
     
      find:=false;
     
      Contents:=TStringList.Create;
      try
        Contents.LoadFromFile(chappli + 'Titre.txt');
        i:=0;
        repeat
     
        If (Pos(Chaine, Contents[i]) > 0) then //begin ShowMessage('Chaine ; '+Chaine+ ' trouvée') ;
           find:=true
     
         else
           i:=i+1;
        until ((find) or (i=Contents.Count));
     
        if find then
     
        ednom.text := (RightStr(Contents[i],Length(Contents[i])-24));
     
        s :=ednom.text;
        delete(s,length(s),1);
        ednom.text:=s;
     
        fini := pchar(chemin + ednom.text);
        //ednom.text :=  AnsiReplaceStr(Ednom.text, '''', '');
        sl.Add(fini);
     
      CopyFilesToClipboard(sl);
     
      finally
        Contents.free;
        sl.Free;
      end;
    Le fichier "Titre.txt" peut-être + ou - long suivant la vidéo !

    Je pense que la balise [Metadata] Adding metadata to "Audio\jm2023.mp3" est la plus appropiée ?

    Merci d'avance,

    @+,

    cincap

  2. #2
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut
    Bonjour Cincap,

    Pourquoi tu ne traites pas la dernière ligne du fichier en supprimant les 46 premiers caractères (ou bien en recherchant la position de la double Quote) + Suppression du dernier caractère.

    A+
    Charly

  3. #3
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut
    Il me semble que dans ta chaine tu confonds la double quote " avec 2 simples quotes de suite ' '

    A+
    Charly

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 582
    Par défaut
    @ Charly910, merci de ta suggestion, j'ai corrigé le double cote et vérifié la longueur (37).

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    var
    Contents:TStringList;
    sl: TStringList;
    find:boolean;
    i:integer;
     
    chaine, s, fini : string;
    begin
      Chaine := '[Metadata] Adding metadata to "Audio\' ;
     
      chemin := chappli +'Audio\';
     
      sl:= TStringList.Create;
     
      find:=false;
     
      Contents:=TStringList.Create;
      try
        Contents.LoadFromFile(chappli + 'Titre.txt');
        i:=0;
        repeat
     
        If (Pos(Chaine, Contents[i]) > 0) then //begin ShowMessage('Chaine ; '+Chaine+ ' trouvée') ;
           find:=true
     
         else
           i:=i+1;
        until ((find) or (i=Contents.Count));
     
        if find then
     
        ednom.text := (RightStr(Contents[i],Length(Contents[i])-37));   //24
     
        s :=ednom.text;
        delete(s,length(s),1);
        ednom.text:=s;
     
       fini := pchar(chemin + ednom.text);
        //ednom.text :=  AnsiReplaceStr(Ednom.text, '''', '');
        sl.Add(fini);
     
      CopyFilesToClipboard(sl);
     
      finally
        Contents.free;
        sl.Free;
      end;
    Je ferme le topic.

    Pour ton info "youtube-dl.exe" n'est plus suivi malgré que tu le met à jour il faut utiliser "yt-dlp.exe" qui le remplace avantageusement et qui a les même fonctions de code.

    @+,

    cincap

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

Discussions similaires

  1. Récupérer les noms des fichiers depuis plusieurs répertoire
    Par had4789 dans le forum Général Python
    Réponses: 2
    Dernier message: 17/11/2020, 10h24
  2. [DOS] Récupérer un nom de fichier depuis DIR
    Par palcoquoz dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 19/05/2017, 21h20
  3. Réponses: 4
    Dernier message: 04/06/2012, 16h44
  4. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  5. [Débutant] récupérer le nom des fichiers textes vers legend
    Par mygwel dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/03/2009, 22h51

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