Fermer

juillet 22, 2021

« Celui qui cherche trouve. » — Bibliothèque de traitement de mots Telerik


Avec la dernière version, R2 2021, nous avons ajouté une fonctionnalité de recherche à part entière dans la bibliothèque RadWordsProcessing. Examinons plus en profondeur.

Vous recherchez du texte dans votre RadFlowDocument ?

La mise en œuvre d'une fonctionnalité de recherche était l'une des fonctionnalités les plus demandées dans la bibliothèque RadWordsProcessing. Maintenant, vous pouvez vérifier le RadFlowDocument pour les occurrences de certains textes même si le texte trouvé est divisé en plusieurs Runs.

Le résultat d'une recherche réussie est une liste de tous les occurrences du texte recherché dans le document. Comme indiqué ci-dessus, le texte peut faire partie d'un ou plusieurs passages et ne peut en contenir qu'une partie. En outre, la recherche peut être exécutée à l'aide d'une chaîne d'expression régulière (regex).

Chaque occurrence contient une collection d'exécutions, l'index du premier caractère du texte recherché à l'intérieur de la première exécution, l'index du dernier caractère dans le texte recherché dans la dernière exécution et le texte qui correspond (dans le cas d'une chaîne regex).

Quoi de neuf

Le RadFlowDocumentEditor fournit désormais deux nouvelles méthodes pour trouver les occurrences de un texte spécifié.

Le premier trouve toutes les occurrences de la chaîne spécifiée et peut respecter la casse et le mot entier :

  • FindAll(string text, bool matchCase=true, bool matchWholeWord=false)[19659010] Et le second trouve toutes les occurrences d'un texte correspondant par l'expression régulière spécifiée :

    Les deux méthodes renvoient une collection d'instances FindResult.

    Pour plus d'informations sur ce sujet et sur les options de remplacement, consultez l'article d'aide Rechercher et remplacer le texte et le style .

    Exemple

    En utilisant la méthode FindAll() déjà mentionnée, nous obtiendrons tous les FindResults dans le document :

    RadFlowDocument document = ImportOrCreateDocument();[19659016]RadFlowDocumentEditor editor = new RadFlowDocumentEditor(document);

    ReadOnlyCollection findResults = editor.FindAll("90 ]matchCase : truematchWholeWord : false);

    Lorsque nous avons déjà la collection des résultats, nous pouvons les itérer et imprimer le contenu correspondant sur la console :[19659027]pour (int i = 0; i < findResults.Count; i++)

    {

    FindResult result = findResults[i];

    si (i == 0)

    {

    Console.WriteLine($"FullMatchText : {result.FullMatchText}");

    Console.WriteLine();

    }[19659041]Console.WriteLine($"Résultat #{i + 1}");

    string runText = result.Runs[0].Text;

    int start = result.RelativeStartIndex;[19659004] int end = result.RelativeEndIndex;

    string textBefore = runText.Substring(0, start);

    string machedText = runText.Substring(start, end - start + 1);[19659004] string textAfter = runText.Substring(end + 1);

    Console.WriteLine($"{textBefore}<<{machedText}>>{textAfter}");

    Console.WriteLine();

    }

Voici à quoi ressembleront les premiers résultats sur la console :

BlogPost WordsProcessing Search 01 - résultats textuels

Ou quelque chose similaire développé dans un projet WPF :

BlogPost WordsProcessin g Recherche 02

La capture d'écran est tirée de la Telerik UI for WPF Controls Demo. Vous pouvez télécharger et vérifier la dernière version de cette démo sur demos.telerik.com/wpf.

Essayez RadWordsProcessing Yourself

Obtenez un essai gratuit de Telerik Document Processing aujourd'hui et commencez à développer vos applications mieux, plus rapidement et plus facilement.

Démarrer mon essai

Partagez vos commentaires

Continuons à construire ensemble l'avenir du traitement de documents Telerik ! Alors, n'oubliez pas de partager vos réflexions sous forme de commentaire ci-dessous ou de nous faire savoir si vous avez des suggestions et/ou avez besoin de fonctionnalités ou de composants en visitant notre Portail de commentaires sur le traitement des documents Telerik.




Source link

Revenir vers le haut