-
Parcours de textes
Bonjour,
je ne sais pas si je poste au bon endroit, sinon veillez m'en excuser par avance.
dans un texte
+ s'il est quelconque et que je veux obtenir le nᵉᵐᵉ mot ou le début du mᵉᵐᵉ paragraphe. Est-on contraint de parcourir l'ensemble du texte et analyser l'ensemble des caractères ? Que ce soit avec un fonction/méthode d'une API ou une faite main.
+ même question pour un texte structuré comme un fichier XML. Si je veux accéder à la nᵉᵐᵉ balise (ou son contenu) ou au mᵉᵐᵉ nœud du document le parcours va-t-il devoir se faire sur l'ensemble du texte caractère par caractère ou des "marqueurs" permettent-il de faire des sauts dans le texte ?
j'ai conscience que je n'exprime pas clairement ma pensée j’espère l'affiner au fils de réponses.
D'avance merci.
-
Aux grands mots les ...
Bonjour,
Dans le meilleur des cas, il faudra au moins parcourir tous les caractères jusqu'à trouver ce que l'on cherche.. Les algorithmes améliorés limitent le besoin de faire beaucoup plus en utilisant un automate d'analyse qui tiendra compte de la structure de la chaîne recherchée.
Par exemple si je cherche la chaîne "totus" et que le texte présente "...toto...", il va être en erreur sur la 4e lettre, "o" au lieu de "u". Une démarche triviale reviendrait alors sur "...oto...", échouera et passera à "...to...". Un algorithme plus évolué tiendra compte des redondances internes à la chaîne recherchée et sautera directement à "...to..."
Pour les chaînes courtes, cela n'a pas d'intérêt car la probabilité d'une répétition interne est faible voire nulle.
Pour sauter à un éventuel marquage (comme une balise XML), il va bien falloir la chercher caractère après caractère sauf si le texte est accompagné de tables d'indexation (ce qui signifie que le job a déjà été fait).
Cela peut être masqué par des fonctions qui semblent directes mais qui, en fait, vont faire l'analyse au moins caractère par caractère. Cela peut même être contre-productif car les appels de ce genre de fonctions vont multiplier les analyses. Mais il est vrai que cela apparaitra plus lisible au développeur.
Salutations