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 :

Trouver la ligne d'un TStringList qui commence par 'cycle:' ?


Sujet :

Delphi

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut Trouver la ligne d'un TStringList qui commence par 'cycle:' ?
    Bonjour,

    Savez-vous si il existe une méthode plus simple que l'utilisation d'une boucle for avec un Pos pour trouver le numero de la ligne qui commence par 'cycle:' dans un TStringList ?

    J'ai essayé les méthodes Find et IndexOf mais elles ne semblent pas correspondre à ce que je veux faire...

    Merci,
    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  2. #2
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut

    Citation Envoyé par MaTHieU_
    J'ai essayé les méthodes Find et IndexOf mais elles ne semblent pas correspondre à ce que je veux faire...
    L'aide D6 dit :
    Pour rechercher une chaîne dans une liste de chaînes, utilisez la méthode IndexOf. IndexOf renvoie l'indice de la première chaîne de la liste qui correspond au paramètre transmis et renvoie –1 si la chaîne transmise en paramètre n'est pas trouvée. IndexOf recherche uniquement une correspondance exacte ; si vous voulez obtenir des chaînes de correspondance partielle, vous devez parcourir la liste de chaînes.
    Vous pouvez, par exemple, utiliser IndexOf pour déterminer si un nom de fichier donné se trouve dans les éléments (Items) d'une boîte liste :

    if FileListBox1.Items.IndexOf('WIN.INI') > -1 ...
    Et ça ne fonctionne pas ?
    C'est sans doute la correspondance partielle qui pose pb...
    Choisir, c'est renoncer...

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    En effet, je cherche "cycle:" dans une chaine qui commence par mais qui est par exemple "cycle: 22".

    Voici alors ce que j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Cycle
    for i := 0 to MyStringList.Count-1 do
    begin
    	if Pos('cycle:',MyStringList.Strings[i]) > 0 then
    	begin
    		MyCycle := StrToInt(Trim(Copy(MyStringList.Strings[i],8,2)));
    		break;
    	end;
    end;
    Je ne sais pas si c'est la meilleure méthode mais ça marche

    Merci,
    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Ca me parait la méthode normale dans ce cas.

    Si le séparateur était "=" (exemple cycle=22), on aurait pu faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mycycle:=strtoint(trim(MyStringList.values['cycle'])) ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    OK!

    Je ne connaissais pas l'astuce avec le "=" c'est bon à savoir

    Merci,
    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  6. #6
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    je n'est pas essayer mais je pense que si vous copier le contenu de ta liste vers un Tmemo et vous utiliser la commande find.
    la ligne du memo devrai corespandre a items de ta liste.
    ce n'est qu'une suposition.

  7. #7
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    C'est ce que j'avais envisagé d'utiliser mais comme ce traitement est réalisé dans un thread, il n'y avait pas de TMemo.Parent, c'est pourquoi je ne suis retourné vers le TStringList qui n'en a pas besoin.

    Cordialement,
    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/06/2013, 15h25
  2. Réponses: 2
    Dernier message: 19/01/2011, 15h41
  3. Réponses: 1
    Dernier message: 30/09/2010, 10h34
  4. sed: remplacer une ligne qui commence par Version
    Par lili2704 dans le forum Linux
    Réponses: 8
    Dernier message: 21/07/2008, 14h26
  5. Réponses: 5
    Dernier message: 19/01/2007, 22h53

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