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 :

séparation d'un champ nom-prénom


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 118
    Par défaut séparation d'un champ nom-prénom
    Bonjour,

    J'ai un fichier texte contenant une liste de prénom; un autre fichier dans lequel je retrouve un champ contenant le nom et le prénom.
    Le but est de rajouter au fichier d'origine 2 champs : un champ contenant le nom et un autre contenant le prénom.

    Je dois donc, pour chaque enregistrement, extraire le champ nom-prenom, et comparer tout les "mots" de ce champ, voir si ils se trouvent dans ma base de prénoms, si oui les ajouter au nouveau champ prénom, si non les ajouter au nouveau champ nom...

    J'ai déjà réalisé un ptit prog qui fait ça mais c'est hyper lent!! 1 enregistrement par seconde... donc pour des fichiers de 300.000 enregistrements et même parfois bcp plus, ça fait long!!

    Ce que j'ai fait, je mets la liste des prénoms dans une listbox, et je prends chaque mot du champ d'origne et je parcours cette listbox pour voir si je retrouve le prénom... Oui je sais c'est un peu bête!!!
    J'avais laissé tout ça de côte une paire d'années, mais j'aurai voulu optimiser tout ça pour pouvoir l'utiliser plus facilement et surtout plus rapidement...

    Quelqu'un aurait une piste pour celà??
    merci

  2. #2
    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
    Par défaut
    1 enregistrement par seconde
    Y'a effectivement de quoi râler!

    Suggestions :
    - virer la listBox, (ne pas utiliser de contrôle nécessitant un affichage).
    - charger les lignes de texte1 dans StringListPrenoms et celles de texte2 dans StringListNomPrenoms en précédant ces chargements par StringListPrenoms.Sorted:=true; et par StringListPrenoms.Duplicates:=dupIgnore; et idem avec StringListNomPrenoms, (l'élimination des doublons évite les comparaisons ultérieures superflues qui ralentissent pour rien).
    - Pour savoir si le "mot" extrait de la ligne StringListNomPrenoms[i] est un prénom existant dans la StringListPrenoms utiliser la fonction j:=StringListPrenoms.IndexOf(mot); si j>=0 alors le "mot" est présent dans les deux listes et si j<0 alors "mot" n'est pas présent dans StringListPrenoms.
    - comme un même prénom peut accompagner plusieurs noms différents on ne peut pas raccourcir la StringListPrenoms pour accélérer les recherches suivantes.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

Discussions similaires

  1. [MySQL] Afficher les champs nom et prénom dans la même colonne
    Par batoule80 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/11/2008, 21h40
  2. [RegEx] Preg_match sur un champs nom prénom
    Par zeflex dans le forum Langage
    Réponses: 10
    Dernier message: 22/10/2008, 14h44
  3. Séparation champ nom
    Par lea-akasha dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/07/2008, 11h25
  4. Réponses: 12
    Dernier message: 30/05/2008, 11h39

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