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 :

Effectuer une recherche dans un fichier texte


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut Effectuer une recherche dans un fichier texte
    Bonjour, je voudrais savoir si après avoir saisi dans un TEdit et sur le "Onclick" d'un bouton, il est possible de parcourir un fichier texte et de voir si le contenu du TEdit existe dans le fichier texte.
    Sachant que si ce contenu existe, il faudrait pouvoir extraire la ligne qui va avec dans un memo ou un autre TEdit. Est-ce possible ?
    J'ai parcouru certains tuto sans résultats ...
    Merci d’avance.

  2. #2
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Bonjour,

    Biensur que tu peux le faire.

    1) tu ajoute l'ensemble de ton fichier text dans un StringList genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      with TStringList.Create do
      Begin
        Try
          LoadFromFile(FichierAtraiter);
    //...

    2) Tu parcourw chacune des lignes du StringList

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          i := 0;
          While (Strings[i] <> FinDeFichier) do
          Begin
     
    // ...
    3) a toi de rechercher dans la ligne en question si tu trouve ton text du tedit genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if pos(Strings[i],Edit.text) <> 0 then ...
    Voilà en gros.

    A plus

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    salut,

    je voudrais savoir si après avoir saisi dans un TEdit et sur le "Onclick" d'un bouton, il est possible de parcourir un fichier texte et de voir si le contenu du TEdit existe dans le fichier texte.
    Sachant que si ce contenu existe, il faudrait pouvoir extraire la ligne qui va avec dans un memo ou un autre TEdit. Est-ce possible ?
    Oui. Mets sur ta fiche :
    1- un "Edit": "Edit1"sert pour la recherche.
    2- un memo.
    3 -un Edit: "Edit2" sert pour afficher le numéro de la ligne du Memo.

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var posM,posL,i,j:integer;
        trouve:boolean;
        NumeroLigne:integer;
    begin
    for i:=0 to Memo1.Lines.Count do
    begin
    posL:=pos(Edit1.Text,Memo1.Lines[i]);
    if posL <>0 then begin
    posM:=0;
    for j:=0 to i-1 do
    posM:=posM+length(Memo1.Lines[j]);
    posM:=posM+(i*2);
    posM:=posM+posL-1;
    Memo1.SetFocus;
    Memo1.SelStart:=posM;
    Memo1.SelLength:=length(Edit1.Text);
    trouve:=true;
    ///////////// ici on recherche le le numéro de ligne /////////
     NumeroLigne := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,-1,0);
      edit2.Text:=(inttostr(NumeroLigne)); //Edit2: affiche le numéro de la ligne
    /////////////////////
    break;
    end;
    if trouve=false then
    Edit2.Clear;
    end;
    end;
    A+

    NABIL74

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut


    Avant de poster, effectuer une recherche, ce sujet vient d'être débatu la semaine dernière

    Recherche d'un string dans fichier

    comment on fait une recherche dans un fichier ASCII
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    merci à vous trois pour vos réponses, je vais regarder cela

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    Alors je me suis aidé de ce que vous m'avez dit Buzz et Nabil , désolé ShaileTroll mais je suis (très ) vite dépasser dans ta fonction ... ( quand j'aurais un peu plus d'expérience je me repencherais surement dessus) .

    cela marche j'arrive bien à trouver ce que je cherche , mais admettons que je cherche dans le fichier texte toutes les lignes en rapport avec ce qui aura été saisie dans Edit1, avec le code actuel, la recherche s'arrête dès qu'elle a trouvé le mots cherché .
    Je pense qu'il faut utiliser un while , mais pour ce qui est de la condition booléenne , je ne vois pas trop ,
    j'ai essayé avec

    while Memo1.text < > '' do
    begin ...

    mais sans resultat...

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

Discussions similaires

  1. Une fonction recherchant l'occurrence d'une chaîne dans un fichier texte
    Par l_autodidacte dans le forum Vos Contributions VBScript
    Réponses: 5
    Dernier message: 11/05/2012, 14h30
  2. Réponses: 4
    Dernier message: 26/05/2011, 22h50
  3. Rechercher dans un fichier texte une valeur
    Par promenneur77 dans le forum Langage
    Réponses: 7
    Dernier message: 20/01/2008, 19h46
  4. Réponses: 7
    Dernier message: 18/11/2007, 11h38

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