Jump to content
  • 0
acodev

Decouper texte d'une rubrique de longuer defini

Question

Bonsoir, 

J'ai un texte longueur 485 caractères,  je souhaite le découper par tranches 70 caractères soit 7 tranches. 

Libelle = ETANCHEFACIL Mortiers d’imperméabilisation par minéralisation de surface CONFORME à LA NORME 1504-2  . Forte adhérence au support de par sa formulation riche en résine. Etanche à l’eau. S’applique sans primaire sur support sain et humide (non ruisselant). Facilité d’emploi. Produit microporeux. Résistance à la pression et à la contre-pression. Constitue une finition durable. Peut être revêtu d’une peinture décorative compatible ou enduit. Permet de blanchir les murs dans le temps.

Ma première variable :  $Lib 70 1= Extrait(Libelle;0;Longueur ( MotsExtraits ( Libelle; 0; NombreMots ( Extrait ( Libelle; 0 ; 70)))))

=> j'obtient bien = ETANCHEFACIL Mortiers d’imperméabilisation par minéralisation de surface

La 2ème :  $Lib 70 1= 
Extrait (Libelle ; 
Longueur (Libelle 1) + Si ( Extrait (Libelle; Longueur (Libelle 1)+1; 1)=" "; "2" ; "1" ); 
Longueur ( MotsExtraits ( Libelle ; NombreMots ( Libelle 1)+1; 
   Si ( Longueur (Libelle 1)+1+70>74; 
   NombreMots (Extrait ( Libelle; Longueur (Libelle 1)+1;70))-Longueur ( MotsFin ( Extrait ( Libelle ; Longueur (Libelle 1 ) + 1; Longueur ( Extrait ( Libelle; Longueur (Libelle 1 ) + 1 ; Longueur ( Libelle 2 )+1) )); 1 ) ); 
   NombreMots (Extrait ( Libelle; Longueur (Libelle 1)+1;72))))))

=> j'obtient bien =CONFORME à LA NORME 1504-2 , Forte adhérence au support de par sa formulation

 

Formulation est en trop malgré mon calcul

 

Si quelqu'un a une idée. 

Merci bonne soirée bon weekend

Francis

 

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Bonjour,

S'il faut découper le texte par tranche de 70 caractères, je ne vois pas pourquoi tu utilises les fonctions Mots…, je te propose la formule suivante où chaque paquet est séparé par un retour à la ligne :

Extrait ( texte ; 1 + 70 * 0 ; 70 ) & ¶ &Extrait ( texte ; 1 + 70 * 1 ; 70 ) & ¶ &Extrait ( texte ; 1 + 70 * 2 ; 70 ) & ¶ &Extrait ( texte ; 1 + 70 * 3 ; 70 ) & ¶ &Extrait ( texte ; 1 + 70 * 4 ; 70 ) & ¶ &Extrait ( texte ; 1 + 70 * 5 ; 70 ) & ¶ &Extrait ( texte ; 1 + 70 * 6 ; 70 )

et on obtient le résultat suivant :

ETANCHEFACIL Mortiers d’imperméabilisation par minéralisation de surface CONFORME à LA NORME 1504-2  . Forte adhérence au support de par sa formulation riche en résine. Etanche à l’eau. S’applique sans primaire sur support sain et humide (non ruisselant). Facilité d’emploi. Produit microporeux. Résistance à la pression et à la contre-pression. Constitue une finition durable. Peut être revêtu d’une peinture décorative compatible ou enduit. Permet de blanchir les murs dans le temps.

À moins que la demande soit différente… ?

Share this post


Link to post
Share on other sites
  • 0

Bonjour,

De ma comprenette :

=> Notre ami Francis à l'air de vouloir faire des paquets de 70 caractères mais de vouloir récupérer l'ensemble des mots, même si cela dépasse les 70 caractères sans excéder 74 caractères, et l'ensemble dans des variables.


Par "facilité", j'ai mis ça dans la TiteFausseRécursive, mais il y a peut être moyen selon la version de s'en passer ( me suis arrêtée à la 16 de mon coté )

Let ([$NbCCT = 70 ; $MaxCCT = 74 ; $Txt = "ETANCHEFACIL Mortiers d’imperméabilisation par minéralisation de surface CONFORME à LA NORME 1504-2  . Forte adhérence au support de par sa formulation riche en résine. Etanche à l’eau. S’applique sans primaire sur support sain et humide (non ruisselant). Facilité d’emploi. Produit microporeux. Résistance à la pression et à la contre-pression. Constitue une finition durable. Peut être revêtu d’une peinture décorative compatible ou enduit. Permet de blanchir les murs dans le temps. " ;$n = 0 ; $nbm = 0 ;$End = Ceiling ( Length ( $Txt ) / $NbCCT ) ;Calc = "Let([L = length ( MiddleWords ( $Txt ; 1 ; $nbm ) )+1 ;NM = WordCount ( Middle ( $Txt ; L ; $NbCCT ));Test = Length ( MiddleWords ( $Txt ; $nbm + 1 ; NM )) > $MaxCCT ;Result = MiddleWords ( $Txt ; $nbm + 1 ; NM - Test );$n = $n + 1 ; $nbm = $nbm + NM - Test ;$Var[$n] = Result]; Result ) &\¶&"]; Evaluate ( Substitute ( ( 10 ^ $End ) - 1 ; 9 ; Calc ) & "\"\"" ))

Donnera donc comme résultat :

ETANCHEFACIL Mortiers d’imperméabilisation par minéralisation de surface
CONFORME à LA NORME 1504-2  . Forte adhérence au support de par sa
formulation riche en résine. Etanche à l’eau. S’applique sans primaire
sur support sain et humide (non ruisselant). Facilité d’emploi. Produit
microporeux. Résistance à la pression et à la contre-pression. Constitue
une finition durable. Peut être revêtu d’une peinture décorative
compatible ou enduit. Permet de blanchir les murs dans le temps

et chaque phrase est placée dans une variable multivaluée : Var[1], Var[2] etc. ( si ce n'est pas nécessaire, il faut juste virer $Var[$n] = Result du calcul )

les variables $NbCCT - $MaxCCT et $Txt sont bien sûr des variables utilisateurs, modifiables à souhaits

A vérifier et surtout, bien confirmer les "règles" ;)

Bon dimanche

Agnès

Share this post


Link to post
Share on other sites
  • 0

Agnès, David bonjour et merci, 

C'est Agnès ça... 

Par contre qu'entends tu par TiteFausseRécursive ?

 

Merci bonne journée Francis

 

 

 

Share this post


Link to post
Share on other sites
  • 0

J'entends que c'est un calcul faussement vraiment récursif ?

Il boucle sur lui même grâce à la combinaison finale, Evaluate ( Substitute ( 10 ^ n ) - 1 (...) ) et permet d'éviter ou CustomList () ou une boucle ou une fonction personnalisée récursive ou une répétition pas très souple de ligne de calcul ou une multivaluée ou une rubrique en plus.

Peut être qu'en 17 il y a moyen de la remplacer

Bonne journée également

Agnès

Share this post


Link to post
Share on other sites
  • 0

Ok merci bonne journée

Francis

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...