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

Composants VCL Delphi Discussion :

Regex en delphi?


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 213
    Par défaut Regex en delphi?
    Hello,

    Je cherche un moyen équivalent aux expression régulière en delphi..

    Mon but : trouver l'Artiste/Nom d'un path mp3.

    exemple C:/Sons/Anastacia - Left Outside Alone.mp3

    1er : Récupérer tout ce qui est après le dernier \
    ensuite mettre en variable ce qui est du côté gauche du -
    et mettre en variable ce qui est du côté droit du - sans le .mp3

    Qq à une idée?
    Merci

  2. #2
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Si tu tiens à utiliser les expressions régulières, il y a la bibliothèque TRegExpr disponible dans la page Composants Delphi de Développez.com.

    Cependant, je te conseille de programmer le filtre toi-même ici. C'est très simple et sera plus rapide que l'utilisation de reg expr.

    Avec les deux routines ci-dessous, que tu peux trouver dans l'unité SjrdStrUtils de mon cru :
    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
    // Renvoie la première sous-chaîne de S délimitée par Token
    // (si Token n'est pas dans S, renvoie S)
    function GetFirstToken(S : string; Token : Char) : string;
    var I : integer;
    begin
      I := 1;
      // On parcourt la chaîne jusqu'à trouver un caractère Token
      while (I <= Length(S)) and (S[I] <> Token) do inc(I);
      // On copie la chaîne depuis le début jusqu'au caractère avant Token
      Result := Copy(S, 1, I-1);
    end;
     
    // Renvoie la dernière sous-chaîne de S délimitée par Token
    // (si Token n'est pas dans S, renvoie S)
    function GetLastToken(S : string; Token : Char) : string;
    var I : integer;
    begin
      I := Length(S);
      // On parcourt la chaîne à l'envers jusqu'à trouver un caractère Token
      while (I > 0) and (S[I] <> Token) do dec(I);
      // On copie la chaîne depuis le caractère après Token jusqu'à la fin
      Result := Copy(S, I+1, Length(S));
    end;
    Tu peux faire très facilement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure GetArtistAndTitle(FileName : string; out Artist, Title : string);
    begin
      FileName := GetFirstToken(GetLastToken(FileName, '\'), '.');
      Artist := Trim(GetFirstToken(FileName, '-'));
      Title := Trim(GetLastToken(FileName, '-'));
    end;
    Voilà
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 213
    Par défaut
    Salut sjrd,

    Tu à bien raison, je vais utiliser GetFirstToken() :-)

    Je ne connaisais pas..

    Bon samedi à toi et merci

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

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. Réponses: 1
    Dernier message: 13/05/2002, 09h19
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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