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 :

comment on fait une recherche dans un fichier ASCII


Sujet :

Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 175
    Points : 55
    Points
    55
    Par défaut comment on fait une recherche dans un fichier ASCII
    Tous
    Je veux savoir comment on fait une recherche sur un mots (par exemple ) dans un fichier ASCII.
    svp

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;

    donc c'est un fichier texte. je te donne une recette bien ancienne mais elle s'avère lourde une fois que ton fichier est très volumineux. Tout d'abord tu ouvre ton fichier, tu le parcoure ligne par ligne ceci dit c'est une recherche séquentielle, pour cela tu as besoin d'un tableau ou d'une liste, chaque fois que tu rencontre ton mot tu rajoute son emplacement (numéro de ligne) dans le tableau ou la liste, aussi faut-il avoir une variable pour donner la fréquence, tu fais ça jusqu'à atteindre la fin du fichier.

    En algo cela correspondrait à ça :

    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
     
    i : entier 
    Tab : Tableau entier
    Ouvrir Fichier 
    i :=0
     
    Tant que pas fin_de_fichier faire
      Lire_Ligne;
      Tant que pas fin_de_ligne
          Rechercher_dans_la_ligne(mot)
          si mot trouver alors 
             incrémenter(i)
             Sauver_dans_Tableau(Tabl)
          fin si
      Fin Tant que // Lecture ligne    
      Aller_Ligne_Suivante
    Fin Tant que // Lecture fichier
    je crois que c'est tout.

    Bonne chance.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    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
    Salut,

    Utilises donc la manip "Chercher" du Forum pour y re-trouver la fonction "SearchStringInBigFile" de ShaiLeTroll : elle est super.

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

  4. #4
    tintin22
    Invité(e)
    Par défaut
    Tu peux egalement utiliser un TStringList ! loader le fichier ASCII et rechercher avec les fonctions Find ou IndexOf.

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 447
    Points : 24 846
    Points
    24 846
    Par défaut
    Merci Gilbert Geyer, SearchStringInBigFile est un mot clé trop long pour "Recherche", c'est bien dommage ... mais cela se trouve quand même en ne mettant que SearchString

    L'algo n'est pas très différent de celui de Just-Soft, c'est juste qu'au lieu de lire Ligne par Ligne, cela lit paquet par paquet, cela va bcp plus vite, mais cela complique notablement la comparaison de chaine, surtout pour la gestion d'une chaine à cheval sur deux paquets
    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

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 175
    Points : 55
    Points
    55
    Par défaut
    Merci à vouz tous mes amis

  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 ShaiLeTroll :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... SearchStringInBigFile est un mot clé trop long pour "Recherche"
    ... merci pour l'info.

    Tu ajoutes
    c'est bien dommage
    ... je dirais que c'est encore plus dommage que SearchStringInBigFile ne soit pas carrément dans la Faq vu qu'il s'agit d'une réponse à une question très fréquemment posée ... mais ça viendra peut-être un jour (appel du pied).

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

  8. #8
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut Critères pour insertion dans la FAQ
    Gilbert Geyer vient d'évoquer un point très délicat. Au fait quels sont les critères pour qu'une réponse soit insérer dans la FAQ ?
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  9. #9
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Citation Envoyé par Just-Soft Voir le message
    Gilbert Geyer vient d'évoquer un point très délicat. Au fait quels sont les critères pour qu'une réponse soit insérer dans la FAQ ?
    Ben le demander à un membre de la rédac, comme... Gilbert pardi !

    Complément :
    http://delphi.developpez.com/faq/?pa...#Participation

    @+

  10. #10
    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 critères
    Salut,

    Ben le demander à un membre de la rédac], comme... Gilbert pardi !
    ... à un membbre de la rédac : oui
    comme Gilbert : non : je suis seulement modérateur.

    Par contre on peut s'attendre à ce que :
    - le 1er critère est de toute évidence que la réponse proposée pour être insérée dans la FAQ est qu'elle réponde à une Question Fréquemment posée,
    - le 2ième critère est en toute logique que la réponse proposée soit efficace (efficace = suffisamment optimisée) (ce qui est le cas de SearchStringInBigFile qui a été fignolée au fil du temps),
    - et parmi les critères suivants je parie qu'il faut :
    - que la réponse soit assortie de commentaires pédagogiques si le code
    n'est pas suffisamment "parlant" par lui-même : Exemple : Exit les noms de variables ambigûs ou qui compliquent la compréhension : plus le code est "parlant" et moins il nécessite de lignes de commentaires,
    - que longueur du code ne dépasse pas une certaine taille : plus c'est court, plus c'est digeste, et plus tout le monde il aime.
    - mais il y a peut-être d'autres critères car chaque cas est un cas particulier .

    En tout cas, si je me trompe en disant ceci, c'est au moins ce que je recherche en fouillant le net.

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

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 447
    Points : 24 846
    Points
    24 846
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    ...la réponse soit assortie de commentaires pédagogiques si le code
    n'est pas suffisamment "parlant" par lui-même : Exemple : Exit les noms de variables ambigûs ou qui compliquent la compréhension : plus le code est "parlant" et moins il nécessite de lignes de commentaires...
    C'est la dessus que je dois bosser pour que cela puisse devenir une FAQ, ... ainsi, que le passage des fonctions Delphi -> TFileStream, puis compatibilité D2009, ...
    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

  12. #12
    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 ShaiLeTroll,

    C'est la dessus que je dois bosser pour que cela puisse devenir une FAQ
    ... mille excuses pour ce surcroît de boulot.

    A ta place je traduirais les noms des variables en français (ex : AcceptOverlap --> OKLesChevauchements, Threshold --> StopAOccuMax, AmtTransferred --> Lu du verbe Lire, etc) plus il y a du français dans le code et moins il faudra de lignes de commentaires. (En plus, cf règle n° 3.1. Ce forum est un forum francophone ... et tant pis si on est obligé de conserver l'anglais pour des trucs comme TFileStream...) ... c'est juste une petite gymnastique intellectuelle de traduction.

    , ... ainsi, que le passage des fonctions Delphi -> TFileStream
    ... Ah bon ? Mais ce ne doit pas être très compliqué à faire.

    , puis compatibilité D2009
    ... tiens ça me rappelle la compatibilité descendante vers Delphi-5 par exemple où j'ai dû créer le Type tAOI = array of Integer; et remplacer le paramètre out OffSets: TIntegerDynArray; par var TableDesPositions : TAOI; vu que le TIntegerDynArray n'existe pas sous Delphi-5.

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

  13. #13
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 447
    Points : 24 846
    Points
    24 846
    Par défaut
    Bien vu pour, "types" pour Delphi 5 ...

    Pour le TFileStream, faut juste tester, rien de bien méchant ... c'est juste que vu que je n'ai internet qu'au boulot ... , ça peut prendre du temps ... avec les vacances ...

    Je suis nul en anglais, une grosse quiche, mais pourtant, il m'est très difficile d'écrire du code en Français (sauf des mots genre Clients, Commandes, Factures...), pour tout ce qui concerne la technique, je reprends la terminologie de la MS API ...
    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

  14. #14
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Bien vu pour, "types" pour Delphi 5 ...

    Pour le TFileStream, faut juste tester, rien de bien méchant ... c'est juste que vu que je n'ai internet qu'au boulot ... , ça peut prendre du temps ... avec les vacances ...

    Je suis nul en anglais, une grosse quiche, mais pourtant, il m'est très difficile d'écrire du code en Français (sauf des mots genre Clients, Commandes, Factures...), pour tout ce qui concerne la technique, je reprends la terminologie de la MS API ...
    oh je croyais que j'étais le seul
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  15. #15
    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
    Re-Salut,

    Je suis nul en anglais,...
    ... moi aussi, il m'en reste de vagues souvenirs, c'est pourquoi je refléchis en français et je donne à mes variables souvent des noms abrégés issus du français.

    ... pour tout ce qui concerne la technique, je reprends la terminologie de la MS API ...
    ... ben, avec cette terminologie t'es pas sorti de l'auberge anglaise.
    ... et les noms des variables c'est pas vraiment de la technique c'est plutôt au niveau de la réflexion qu'on les choisit, Oui/Non ?

    Mais chacun à son mode de fonctionnement.

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

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

Discussions similaires

  1. Comment faire une recherche dans un fichier?
    Par djisse dans le forum Entrée/Sortie
    Réponses: 15
    Dernier message: 20/07/2009, 15h27
  2. Comment aller chercher une info dans un fichier
    Par El-Diablo- dans le forum C++Builder
    Réponses: 15
    Dernier message: 06/05/2007, 16h39
  3. Réponses: 1
    Dernier message: 18/05/2006, 16h00
  4. Faire une recherche dans un fichier XML
    Par Devilish_Seraph dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 21/01/2006, 13h41
  5. [LG]Runtime Error lors d'une recherche dans un fichier
    Par Fraynor dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2005, 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