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 :

Recherche dans un tableau de record


Sujet :

Delphi

  1. #1
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut Recherche dans un tableau de record
    Bonjour

    J’ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const t:array [0..8]of string=('Mn','Cl','H' ,'Cr','O','S',’F’,……..);
     
    const tre:array[0..20]of record
            reference   : String;
            valeur : String;
            end = ((reference:'F2/HF';valeur:'3.05 V'),………..
    Puis dans une listBox j’ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i:=Low(tre) to High(tre) do
        begin
        Listbox1.Items.Add(tre[i].reference);
        End;

    Je souhaite créer un “moteur de recherche”
    Par exemple je tape un des éléments de t (ex :F)
    Je souhaite rechercher tous les éléments de tre qui contienne F puis les afficher dans un RichEdit ou une autre ListBox

    merci
    AT

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Avec une simple boucle depuis Low(tre) à High(tre), tu isoles les occurrences avec un Pos.

    @+ Claudius

  3. #3
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    Bonjour,
    Je rectifie les erreurs !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.Button1Click(Sender: TObject);
    var s:string; i:integer;
    begin
     s:=edit1.text;
     for i:=Low(tre) to High(tre) do
        begin
        if pos(s,tre[i].reference)<>0 then
            Listbox5.Items.Add(tre[i].reference);
        end;
    end;
    Mon code ne fait pas la difference entre par ex F et Fe ou Fs..... Il recupere tout ce qui contien F dans tre

    J'ai un bon début de piste
    AT

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,
    Citation Envoyé par AT Voir le message
    Mon code ne fait pas la difference entre par ex F et Fe ou Fs..... Il recupere tout ce qui contien F dans tre
    Il me semble que c'est ce que tu avais demandé.
    Citation Envoyé par AT Voir le message
    Je souhaite rechercher tous les éléments de tre qui contienne F puis les afficher dans un RichEdit ou une autre ListBox
    @+

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Mon code ne fait pas la difference entre par ex F et Fe ou Fs
    ... ben oui, pour différencier il suffit d'un If pos('Fe',string)=1 pour cibler les molécules qui commencent par 'Fe' ou un If pos('Fe',string)>0 pour cibler celles où le 'Fe' peut être logé en n'importe quelle position de la string.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    bonjour,


    je tape dans un edit des lettres, Je ne peux faire un pour chaque cas ,Il y a trop de possibilité
    AT

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    A AT :
    je tape dans un edit des lettres, Je ne peux faire un
    If pos('Fe',string)=1 pour chaque cas ,Il y a trop de possibilités
    ... et tu ne peux pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        If pos(Edit1.text, string)=1 then 
        ...
        If pos(Edit1.text, string)=0 then
    en tapant 'Fe' dans le Edit ? Oui/non ?

    ... on peut même remplacer le 1 et le 0 par une var locale qu'on passe à 0 ou à 1 selon qu'un RadioButton ou autre chose est Checked ou not Checked selon que l'on veut viser uniquement les 'Fe' (c.à.d le contenu de l'Edit) situés en début de molécule où viser tous les 'Fe' quelle que soit leur position dans la string.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  8. #8
    AT
    AT est déconnecté
    Membre régulier Avatar de AT
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 168
    Points : 85
    Points
    85
    Par défaut
    En fait c'est surtout pour differencier C de Cs ou Cr par exemple

    je reprend mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    s:=edit1.text;
    for i:=Low(tre) to High(tre) do
      begin
      if pos(s,tre[i].reference)<>0 then
      Listbox5.Items.Add(tre[i].reference);
      end;
    Si je tape C : j'affiche aussi Cs, Cr.....

    Ayant repris mon travail je n'ai + beaucoups de temps pour me pencher sur la programmation et je ne peux rentrer chez moi tous les soirs ( je bosse à 150 km de chez moi )

    merci à tous en tout cas
    AT

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

Discussions similaires

  1. [Tableaux] recherche dans un TABLEAU
    Par dunbar dans le forum Langage
    Réponses: 3
    Dernier message: 15/08/2006, 01h06
  2. [VBA-E]Recherche dans un tableau
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 05/07/2006, 11h35
  3. Recherche dans un tableau
    Par Bes74 dans le forum Access
    Réponses: 5
    Dernier message: 04/07/2006, 18h26
  4. [VBA-E] recherche dans un tableau
    Par tibss dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 03/05/2006, 18h52
  5. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 18h21

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