« 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 :
true
matchWholeWord :
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 :
Ou quelque chose similaire développé dans un projet WPF :
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.
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