[FUNC] Text Formatter

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 131
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

[FUNC] Text Formatter

#1

Message par Numeric »

Salut à tous je vous présente une fonction simple.

Fonction CreateFormattedString

Objectif

La fonction CreateFormattedString a pour objectif de formater un texte en paragraphes avec une indentation spécifiée, en prenant en compte la longueur maximale des lignes, le nombre de lignes par paragraphe et l'espacement entre les paragraphes. Les paragraphes formatés sont stockés dans un dictionnaire pour une récupération facile.


Contexte d'utilisation

Lorsque vous travaillez sur des applications ou des scripts nécessitant la présentation de texte, il est souvent nécessaire de formater ce texte de manière lisible et esthétique. Cette fonction est utile dans des scénarios tels que la création de documents, la génération de rapports ou tout autre cas où le texte doit être organisé en paragraphes.

Paramètres

Code : Tout sélectionner

- $sText : Le texte à formater.
- $lineLength : La longueur maximale des lignes.
- $linesPerParagraph : Le nombre de lignes par paragraphe.
- $paragraphSpacing : Le nombre de lignes vides entre les paragraphes.
- $indentation : L'indentation pour chaque paragraphe.
Fonctionnement

1. La fonction divise la chaîne de texte $sText en mots individuels.
2. Elle parcourt les mots, en ajoutant de l'indentation aux premières lignes de chaque paragraphe.
3. Les mots sont ajoutés à une ligne en cours, en respectant la longueur maximale des lignes.
4. Lorsque le nombre de lignes par paragraphe est atteint, la fonction ajoute des lignes vides entre les paragraphes.
5. Les paragraphes formatés sont stockés dans un dictionnaire pour une récupération ultérieure.

Dépendance
La fonction utilise quelques fonctions d'une autre UDF Dictionary_UDF.au3 pour des raisons de performance. vous pouvez la télécharger sur ce lien: Téléchargez Dictionary_UDF.au3

Exemple d'utilisation
; Exemple d'utilisation de la fonction CreateFormattedString
$sText = "Ceci est un exemple de texte qui sera formaté en fonction de certaines règles. Chaque paragraphe aura une indentation, et il y aura un espace entre les paragraphes. Un autre paragraphe commence ici, suivi d'un troisième paragraphe."

$formattedText = CreateFormattedString($sText, 40, 3, 2, 4)

; Afficher la chaîne de caractères formatée
ConsoleWrite("Chaîne formatée : " & @CRLF & $formattedText & @CRLF)

; Exemple d'utilisation des méthodes GetParagraph et GetParagraphs
$firstParagraph = GetParagraph(0)
$allParagraphs = GetParagraphs()

ConsoleWrite(@CRLF & "Premier paragraphe : " & @CRLF & $firstParagraph & @CRLF)
ConsoleWrite("Tous les paragraphes : " & @CRLF & _ArrayToString($allParagraphs, @CRLF))
Cette fonction permet de générer facilement des paragraphes formatés à partir d'un texte brut, en facilitant la présentation du texte dans vos projets.

N'hésitez pas à ajouter des détails supplémentaires ou à personnaliser cette fonction en fonction de vos besoins spécifiques.
Fichiers joints
TextFormatter.au3
téléchargez la fonction complète ici
(3.93 Kio) Téléchargé 228 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [FUNC] Text Formatter

#2

Message par mikell »

Inutilisable en l'état
Avant de poster une UDF je suggère vivement de faire de multiples tests
Par exemple en se basant sur l'exemple fourni, CreateFormattedString($sText, 40, 3, 2, 4) retourne un résultat aberrant
De plus il n'est pas cohérent de construire des paragraphes en coupant des phrases sans tenir compte de la ponctuation
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 131
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [FUNC] Text Formatter

#3

Message par Numeric »

mikell a écrit : sam. 07 oct. 2023 11:03 Inutilisable en l'état
Avant de poster une UDF je suggère vivement de faire de multiples tests
Par exemple en se basant sur l'exemple fourni, CreateFormattedString($sText, 40, 3, 2, 4) retourne un résultat aberrant
De plus il n'est pas cohérent de construire des paragraphes en coupant des phrases sans tenir compte de la ponctuation
Merci alors, j'ai eu un peu de temps pour apporter quelques corrections. Je vous présente donc une version de base. Vos contributions sont les bienvenues afin qu'on puissent avoir un outil de formatage de texte fiable. je vous présente le projet.


README

[TextFormatterV1.1]

Description : Ce PROJET UDF (User-Defined Function) pour AutoIt a été initié pour permettre la manipulation et le formatage de texte. Elle offre plusieurs fonctions pour diviser un texte en phrases, formater des paragraphes, et gérer la longueur des lignes.

Contexte d'utilisation : L'UDF est principalement destinée à être utilisée dans des projets AutoIt qui nécessitent la manipulation de texte, tels que la génération de rapports, la création de documents, ou le traitement de données textuelles. Elle peut être utile lorsque vous devez diviser un texte en phrases, formater des paragraphes avec une indentation spécifique, ou ajuster la longueur des lignes.

Fonctions clés :

1. `getSentencesAsArray($sText)` : Cette fonction divise un texte en phrases en utilisant des expressions régulières pour identifier les marqueurs de fin de phrase (., !, ?). Elle renvoie un tableau contenant les phrases du texte.

2. `formatParagraphs($sText, $indent = 3, $lines_per_paragraph = 3, $paragraph_separator = 1)` : Cette fonction formate les paragraphes dans le texte. Vous pouvez spécifier l'indentation, le nombre de lignes par paragraphe, et le nombre d'espaces entre les paragraphes.

3. `formatTextWithMaxLineLength($sText, $maxLineLength = Default)` : Cette fonction permet de formater le texte en ajustant la longueur des lignes. Vous pouvez spécifier une longueur maximale pour les lignes, et la fonction ajustera automatiquement le texte en conséquence.



Limites :
- Les expressions régulières utilisées dans `getSentencesAsArray` peuvent ne pas être parfaites pour toutes les langues et tous les types de texte.
- Les performances de certaines fonctions peuvent être affectées par de très longs textes en raison du traitement ligne par ligne.


Performances :

Les performances de l'UDF sont généralement bonnes pour des textes de taille moyenne. Cependant, il convient de noter que le traitement de très longs textes peut entraîner des ralentissements en raison du traitement ligne par ligne. Il est recommandé d'effectuer des tests de performance pour s'assurer qu'elle convient à votre cas d'utilisation spécifique.

IMPORTANT!
Elle offre des fonctionnalités pour diviser, formater et ajuster le texte, facilitant ainsi la création de documents et le traitement de données textuelles. Toutefois, il est important de tenir compte des limites et des performances lors de son utilisation dans des projets spécifiques.
Fichiers joints
TextFormatterV1.1.au3
version stable.
(11.72 Kio) Téléchargé 208 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Répondre