|
| Champ RTF : enlever les dernier RC |
| Started by bernard SOBRA, Nov., 09 2021 7:44 AM - 12 replies |
| |
| | | |
|
| |
Registered member 357 messages |
|
| Posted on November, 09 2021 - 7:44 AM |
Bonjour les Kadors !
Voila, le titre est surement éloquent, je voudrai enlever lors de la saisie dans un champs de type RTF les derniers sauts de ligne éventuellement laissés par l'utilisateur (RC).
Ben voila, autant dans un champ de saisie classique c'est simple, autant avec un format de saisie RTF cela m'a l'air plus complexe.
Une idée ?
Merci de votre lecture
Bernard
-- Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements. |
| |
| |
| | | |
|
| | |
| |
Registered member 23 messages |
|
| Posted on November, 09 2021 - 11:26 AM |
Bonjour.
SansCaractèreDroite(sChaîne, RC)
-- Cordialement Patrick. |
| |
| |
| | | |
|
| | |
| |
Registered member 1,418 messages |
|
| Posted on November, 09 2021 - 1:20 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 1,418 messages |
|
| Posted on November, 09 2021 - 1:33 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 357 messages |
|
| Posted on November, 10 2021 - 6:56 AM |
En effet, la fonction "SansCaractèreDroite" n'est pas la solution avec du rtf. quand on voit le transcription d'un fichier rtf, on le comprend aisément.
Quand à la fonction décrite par Bertin, elle ne donne pas la possibilité de parcourir à l'envers, et elle va supprimer TOUS les RC du texte. la doc de cette fonction dit que :
[Fin] : Entier optionnel Précise si le texte doit être inséré ou s'il doit remplacer le texte existant. Si [Début] = [Fin] (ou si [Début] est supérieur à [Fin]), le texte sera inséré à la position [Début]. Si [Début] est inférieur à [Fin], le texte remplacera les caractères présents entre [Début] et [Fin].
Ma question reste entière ? Pas moyen d'enlever les derniers RC sauf à le faire à la main.... ?
-- Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements. |
| |
| |
| | | |
|
| | |
| |
Registered member 215 messages |
|
| Posted on November, 10 2021 - 9:01 AM |
Bonjour, Chaîne1 est une chaîne Chaîne2 est une chaîne Chaîne1 = RTFVersTexte(Texte_RTF) Chaîne2 = SansCaractèreDroite(Chaîne1, RC) Texte_RTF = Chaîne2
Chez moi ça marche |
| |
| |
| | | |
|
| | |
| |
Registered member 182 messages |
|
| Posted on November, 10 2021 - 9:44 AM |
En utilisant RTFVersTexte, vous perdrez également le formatage du contenu. Donc cela ne peut pas convenir à la demande initiale. |
| |
| |
| | | |
|
| | |
| |
Registered member 1,173 messages |
|
| Posted on November, 10 2021 - 9:51 AM |
| |
| |
| | | |
|
| | |
| |
Registered member 1,173 messages |
|
| Posted on November, 10 2021 - 9:55 AM |
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5768974 Retour du }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid2844985 \par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5768974 chariot
pour : Retour du chariot
-- Thierry TILLIER Développeur Windev-Webdev Formation Windev : https://coursdinfo.teachable.com/ Formation bureautique : https://coursdinfo.net Tuto WINDEV sur ma chaîne Youtube |
| |
| |
| | | |
|
| | |
| |
Registered member 215 messages |
|
| Posted on November, 10 2021 - 11:41 AM |
dans le code de sortie du champ: MoiMême=SansCaractèreDroite(MoiMême,RC) |
| |
| |
| | | |
|
| | |
| |
Registered member 357 messages |
|
| Posted on November, 10 2021 - 3:38 PM |
THIERRY TILLIER a écrit :
Oui, cela marche très bien, et dans mon cas, en doublant la recherche pour ne pas supprimer tout ceux du texte :
MoiMême = Remplace(MoiMême, "\par" + RC + "\par" , "") Les RC intempestifs de fin de texte disparaissent alors, mais cela interdit de faire deux RC dans le texte. On ne peut pas avec cette méthode supprimer uniquement ceux à la fin de champ de saisie RTF. Merci qui, encore une fois ??? Merci Thierry !! 
-- Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements. |
| |
| |
| | | |
|
| | |
| |
Registered member 1,173 messages |
|
| Posted on November, 10 2021 - 4:23 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 1 message |
|
| Posted on November, 10 2021 - 9:09 PM |
Bonjour Il y a quelques années, j’avais créé une fonction pour répondre à ce problème. Elle permettait d’enlever les espaces (les blancs) en trop ainsi que les lignes en fin d’un champ RTF. Je l’ai retrouvée. Je l’avais appelée EnlèveRCBlancs et l’appel se faisait par EnlèveRCBlancs("nom du champ RTF") ou EnlèveRCBlancs(nom du chamo RTF..nom)
C’est un peu une usine à gaz dont le code peut certainement être optimisé (notamment j’avais doublé le code pour faire une 2ème passe et j’avais eu la flemme de faire mieux.
Vous pouvez l’utiliser telle quelle ou vous en inspirer.
Procedure EnlèveRCBlancs(sRTF)
sTexte est une chaîne nT1 est un entier nT2 est un entier nDif est un entier bRC est un booléen nPositionRC est un entier nT est un entier nCompteRC est un entier
nCompteRC=0 nDif=0 bRC=Vrai sTexte=RTFVersTexte({sRTF, indChamp})
SI SansEspace(sTexte)<>"" ALORS TANTQUE bRC=Vrai ET sTexte<>"" nPositionRC=Position(sTexte,RC,Taille(sTexte),DepuisFin) SI nPositionRC<>0 ALORS nT=Taille(sTexte)-1 SI nT=nPositionRC ALORS sTexte=Gauche(sTexte,nT-1) nCompteRC++ SINON bRC=Faux FIN SINON bRC=Faux FIN FIN DonneFocus(sRTF) SI nCompteRC<>0 ALORS {sRTF, indChamp}..Curseur=Taille(RTFVersTexte({sRTF, indChamp}))+1 POUR i=1 À nCompteRC EnvoieTouche("{RA}",Handle({sRTF, indChamp})) FIN FIN FIN
sTexte=RTFVersTexte({sRTF, indChamp}) SI SansEspace(sTexte)<>"" ALORS sTexte=Remplace(sTexte,RC,"@@@@") nT1=Taille(sTexte) sTexte=Gauche(sTexte) nT2=Taille(sTexte) nDif=nT1-nT2 DonneFocus(sRTF) SI nDif<>0 ALORS {sRTF, indChamp}..Curseur=Taille(RTFVersTexte({sRTF, indChamp}))+1 POUR i=1 À nDif EnvoieTouche("{RA}",Handle({sRTF, indChamp})) FIN FIN FIN
nCompteRC=0 nDif=0 bRC=Vrai sTexte=RTFVersTexte({sRTF, indChamp})
SI SansEspace(sTexte)<>"" ALORS TANTQUE bRC=Vrai ET sTexte<>"" nPositionRC=Position(sTexte,RC,Taille(sTexte),DepuisFin) SI nPositionRC<>0 ALORS nT=Taille(sTexte)-1 SI nT=nPositionRC ALORS sTexte=Gauche(sTexte,nT-1) nCompteRC++ SINON bRC=Faux FIN SINON bRC=Faux FIN FIN DonneFocus(sRTF) SI nCompteRC<>0 ALORS {sRTF, indChamp}..Curseur=Taille(RTFVersTexte({sRTF, indChamp}))+1 POUR i=1 À nCompteRC EnvoieTouche("{RA}",Handle({sRTF, indChamp})) FIN FIN FIN
sTexte=RTFVersTexte({sRTF, indChamp}) SI SansEspace(sTexte)<>"" ALORS sTexte=Remplace(sTexte,RC,"@@@@") nT1=Taille(sTexte) sTexte=Gauche(sTexte) nT2=Taille(sTexte) nDif=nT1-nT2 DonneFocus(sRTF) SI nDif<>0 ALORS {sRTF, indChamp}..Curseur=Taille(RTFVersTexte({sRTF, indChamp}))+1 POUR i=1 À nDif EnvoieTouche("{RA}",Handle({sRTF, indChamp})) FIN FIN FIN |
| |
| |
| | | |
|
| | | | |
| | |
|