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

Langage Delphi Discussion :

Erreur sur fonction d'extraction des mots


Sujet :

Langage Delphi

  1. #1
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut Erreur sur fonction d'extraction des mots
    Bonjour à tous. Je veux mettre en place une fonction qui me permettrait d'obtenir un nombre donné de mots dans une chaîne de caractères chaine. Dans chaine, les mots à ressortir sont séparés du caractère sep.
    Voici la structure de la fonction:extraireMots(chaine : string; sep :Char='#';nmots:integer=1):TStrings;
    nmots, désigne le nombre de mots:
    Par exemple, si je fais:
    extraireMots('Bonjour#tues#heureux','#',3), j'obtienne les mots: Bonjour, tues et heureux.

    Et si je fais:
    extraireMots('Bonjour#tues#heureux','#',2), j'obtienne les deux mots: Bonjour et tues#heureux..

    Voici le code que j'ai écrit, en m'inspirant de ce qui est sur la FAQ:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    function extraireMots(chaine : string; sep :Char='#';nmots:integer=1):TStrings;
    var
      i, n,nbremots : integer; 
      currentWord : string;
      into:TStrings; 
    begin
      into.Clear;
      n := length(chaine);
      i := 1;
      nbremots:=0;
     
      while ((i <= n) and (nbremots<nmots)) do 
      begin 
        currentWord := ''; 
        { on saute les séparateurs  }
        while (i <= n) and (chaine[i] = sep) do
          inc(i);
        { récupération du mot courant  }
        while (i <= n) and not (chaine[i] = sep) do
        begin
          currentWord := currentWord + chaine[i];
          inc(i); 
        end; 
        if (currentWord <> '') then
          begin
           into.Add(currentWord);
           nbremots:=nbremots+1;
          end;  
      end;
      if nbremots=nmots then  //On va recuperer le reste de la chaine pour former le dernier mot
       begin
        currentWord:='';
        while (i<=n) do
         begin
          currentWord:=currentWord+chaine[i];
          inc(i);
         end;
        into.Add(currentWord);
       end;
       Result:=into;
    end;
    Pour la compilation, pas de problème. MAis dans l'execution, il me donne l'erreur: .... 'Access Violation at 004B...'.
    Et il pointe sur into.clear. Quand je mets celui-ci en commentaire, c'est toujours la même erreur sur cette fois-ci: into.Add(currentWOrd).

    Je sais pas vraiment ce qui ne va pas.
    Merci à tous de votre aide!
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    et bien c'est assez simple en fait, tu n'instancies pas ton objet into donc à chaque fois que tu veux y faire référence tu obtiendras une violation d'accès.

    Il te faut donc instancier ton objet mais là je te vois déjà revenir avec une autre erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    into := TStrings.Create;
    Impossible car TStrings est une classe abstraite. Effectivement TStrings est une classe abstraite il faut utiliser un de ses descendants, le plus généralement TStringList :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    into := TStringList.Create;
    Enfin si into ne sert que de variable temporaire pour être renvoyée ensuite via Result, autant utiliser Result directement. Ne pas oublier de détruire la liste après utilisation par la méthode appelant ta fonction.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Merci, et tout semble bien fonctionner.
    Une autre préoccupation est:
    Citation Envoyé par Aka Guymelef Voir le message
    Ne pas oublier de détruire la liste après utilisation par la méthode appelant ta fonction.
    C'est-à-dire?
    Si j'appele ma fonction dans une procedure, je fais into.destroy?, ce qui me semble incorrect. Ou je le fais dans la fonction?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  4. #4
    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 849
    Points
    24 849
    Par défaut
    Il est vrai que faire cette fonction c'est très interessant, mais si tu veux, j'ai fait un explode, a vu de nez, elle devrait être 100 fois plus rapide

    Surtout pas Destroy mais Free !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with extraireMots('Bonjour#tues#heureux','#',3) do
    try
      ... traiter liste
    finally
      Free();
    end;
    Il vaut mieux passer la liste en paramètre déjà créé que faire un retour de fonction, ...
    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
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Ok. J'ai vu tes fonctions. Et, elles ont l'air très optimal et plus rapide que la mienne. Seulement, je voudrais savoir laquelle peut resoudre mon problème? (Ce lle plus proche de la mienne, en termes de fonctionnalités).

    Citation Envoyé par ShaiLeTroll Voir le message
    Il vaut mieux passer la liste en paramètre déjà créé que faire un retour de fonction, ...
    J'essaie d'adapter. Dans ce cas, il serait peut être mieux de faire une procedure. N'est ce pas?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Danjos Voir le message
    J'essaie d'adapter. Dans ce cas, il serait peut être mieux de faire une procedure. N'est ce pas?
    Oui dans ce cas le prototype de ta procédure serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure extraireMots(chaine : string; var Mots: TStrings; sep :Char='#';nmots:integer=1);
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    cela me rappelle une fonction que j'utilise beaucoup :
    ExtractWord et consort se trouvant dans jvStrUtils de la JVCL

    Y jeter un coup d'oeil ne fera pas de mal
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    jvStrUtils de la JVCL
    Voici des termes tous nouveaux pour moi
    Peux-tu me dire où les trouver?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  9. #9
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Citation Envoyé par Aka Guymelef Voir le message
    Oui dans ce cas le prototype de ta procédure serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure extraireMots(chaine : string; var Mots: TStrings; sep :Char='#';nmots:integer=1);
    Peux-tu me donner un exemple d'utilisation? le var, venu s'ajouter me "remue un peu".
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    JVCL = Jedi VCL, c'est une librairie de composants et autres permettant de faire beaucoup de choses. Regardes la section téléchargement de Delphi pour plus de détail.

    Pour ce qui est du var, j'espère que tu as entendu parler du passage de paramètres pour valeur ou par référence. Le var ici sert à indiquer que le paramètre est passé par référence soit, sémantiquement, que l'objet va être modifié à l'intérieur de la fonction.

    Comme exemple d'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var
      maListe: TStrings;
    begin
      maListe := TStringList.Create;
      try
        extraireMots( 'toto est à la piscine', maListe, ' ', 5 );
        // faire quelque chose avec maListe
     
      finally
        maListe.Free
      end;
     
    end;
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  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 849
    Points
    24 849
    Par défaut
    le var ne sert à rien, c'est un objet qui l'on manipule donc pas besoin de var (un objet c'est déjà un pointeur, c'est ce pointeur qui subi la directive var et non pas son contenu ... )

    le var est nécessaire si l'on doit effectuer une ré-instanciation\libération+nil (la fonction FreeAndNil par exemple utilise var à juste titre), dans d'autre cas, cela démontre une absence complète de compréhension des objets en delphi ...

    JVL ICI
    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
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Ok. Merci beaucoup. Tout y est à présent et fonctionne très bien.

    Merci à tous pour vos contributions!

    Je crois qu'en attendant d'autres eclaircissements, sur les propositions de SergioMaster, je peux marquer le post .
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  13. #13
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    le var est nécessaire si l'on doit effectuer une ré-instanciation\libération+nil (la fonction FreeAndNil par exemple utilise var à juste titre), dans d'autre cas, cela démontre une absence complète de compréhension des objets en delphi ...
    Mouerf je sais bien que les objets (en Delphi tout du moins) ne sont pas soumis aux mêmes règles concernant le passage par valeur ou par référence.

    Néanmoins j'aime bien positionner le var même sans l'utiliser réellement juste pour indiquer que l'objet sera bel et bien modifié à l'intérieur de ma fonction plutôt que de ne pas avoir de spécificateurs et d'être dans l'état "ptêtre ben que oui, ptêtre ben que non", c'est une approche purement sémantique de la chose.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  14. #14
    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 849
    Points
    24 849
    Par défaut
    t'intquiète, je l'ai fait aussi à mes débuts , et c'est il n'y a pas si longtemps ...
    Je préfère documenter mes fonctions avec un cartouche pour juste éviter les détournements syntaxiques ...
    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

  15. #15
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    C'est vrai que la documentation est également là pour ça bien qu'en Delphi 7 avec l'auto-complétion on a pas de texte d'aide par contre on peut voir le var donc ça permet de parler directement.

    Néanmoins je sais que maintenant dans VS il est possible d'ajouter les commentaires de telles sortes qu'ils soient visibles également dans l'auto-complétion et c'est peut-être déjà le cas aussi avec les dernières version de Delphi qui sait ?

    En outre je dirais aussi que c'est une "sale" manie également qui doit venir du temps de mes études où avec le C++, le passage par référence est obligatoire si l'on ne voulait pas dupliquer l'objet lors d'un passage par valeur.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  16. #16
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Danjos Voir le message
    Je crois qu'en attendant d'autres eclaircissements, sur les propositions de SergioMaster.
    Désolé d'avoir été si "lapidaire" . Comme l'a dit Aka Guymelef ou ShaiLeTroll , JVCL est un ensemble de composant freeware que j'utilise beaucoup . Il contient également plusieurs unités de fonctions dont jvstrutils (repertoire archive) que j'ai cité .

    dans cette dernière se trouve
    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
    function WordCount(const S: string; const WordDelims: TCharSet): Integer;
    { WordCount given a set of word delimiters, returns number of words in S. }
    function WordPosition(const N: Integer; const S: string;
      const WordDelims: TCharSet): Integer;
    { Given a set of word delimiters, returns start position of N'th word in S. }
    function ExtractWord(N: Integer; const S: string;
      const WordDelims: TCharSet): string;
    function ExtractWordPos(N: Integer; const S: string;
      const WordDelims: TCharSet; var Pos: Integer): string;
    function ExtractDelimited(N: Integer; const S: string;
      const Delims: TCharSet): string;
    { ExtractWord, ExtractWordPos and ExtractDelimited given a set of word
      delimiters, return the N'th word in S. }
    function ExtractSubstr(const S: string; var Pos: Integer;
      const Delims: TCharSet): string;
    { ExtractSubstr given a set of word delimiters, returns the substring from S,
      that started from position Pos. }
    function IsWordPresent(const W, S: string; const WordDelims: TCharSet): Boolean;
    { IsWordPresent given a set of word delimiters, returns True if word W is
      present in string S. }
    qui corresponde + ou - à ce que tu tentes de faire
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  17. #17
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    J'y vois plus clair
    Et là, je vois que les resultats que j'attends de ma procedure sont les mêmes que ceux retournés par la fonction ExtractWord, comme tu l'avais dit plus haut.

    Mais, j'ai encore une autre question. Vu que cette librairie n'est pas intégré à Delphi, est ce qu'il n'y aurait pas de problème d'éxécution sur une machine où Delphi n'est pas installé?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

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

Discussions similaires

  1. programmer en java l'extraction des mots clés sur un site web
    Par industrielle dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 21/12/2008, 14h53
  2. extraction des mots à partir dune chaine de caractères
    Par khaledklaud dans le forum Langage
    Réponses: 2
    Dernier message: 30/09/2008, 16h13
  3. Erreur sur Fonction PL/SQL
    Par boudou dans le forum PL/SQL
    Réponses: 2
    Dernier message: 22/10/2007, 08h34
  4. [MySQL] Erreur sur fonction PHP
    Par lothar59 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/03/2007, 11h31
  5. Erreur sur fonction
    Par all4linux dans le forum C
    Réponses: 2
    Dernier message: 30/06/2006, 10h40

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