[R] Lignes vides non souhaitées dans Contrôle Edit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
GMH
Niveau 5
Niveau 5
Messages : 190
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

[R] Lignes vides non souhaitées dans Contrôle Edit

#1

Message par GMH »

Bonjour,

Ma fonction ci-dessous est destinée à récupérer le contenu d'un premier Contrôle Edit, pour en extraire le premier paragraphe, récupérer le contenu d'un second Contrôle Edit, extraire les derniers paragraphes du premier Contrôle Edit, et enfin effacer le contenu du premier Contrôle Edit pour y afficher le premier paragraphe du premier Contrôle Edit, puis le seul paragraphe du second Contrôle Edit, et enfin les deuxième au cinquième paragraphes du premier Contrôle Edit.

Contenu du premier Contrôle Edit :

Ceci est le premier paragraphe du premier Contrôle Edit.
Ceci est le deuxième paragraphe du premier Contrôle Edit.
Ceci est le troisième paragraphe du premier Contrôle Edit.
Ceci est le quatrième paragraphe du premier Contrôle Edit.
Ceci est le cinquième paragraphe du premier Contrôle Edit.

Contenu du second Contrôle Edit :

Ceci est le seul paragraphe du second Contrôle Edit.

===============

Voici ce que je souhaiterais afficher dans le premier Contrôle Edit :

Ceci est le premier paragraphe du premier Contrôle Edit.
(ici une ligne vide)
Ceci est le seul paragraphe du second Contrôle Edit
(ici une ligne vide)
Ceci est le deuxième paragraphe du premier Contrôle Edit.
Ceci est le troisième paragraphe du premier Contrôle Edit.
Ceci est le quatrième paragraphe du premier Contrôle Edit.
Ceci est le cinquième paragraphe du premier Contrôle Edit.

===============

Alors que j'obtiens ceci :

Ceci est le premier paragraphe du premier Contrôle Edit.
(ici une ligne vide)
Ceci est le seul paragraphe du second Contrôle Edit
(ici une ligne vide)
Ceci est le deuxième paragraphe du premier Contrôle Edit.
(ici une ligne vide non souhaitée)
Ceci est le troisième paragraphe du premier Contrôle Edit.
(ici une ligne vide non souhaitée)
Ceci est le quatrième paragraphe du premier Contrôle Edit.
(ici une ligne vide non souhaitée)
Ceci est le cinquième paragraphe du premier Contrôle Edit.


Voici la fonction :

Code : Tout sélectionner

Local $contenuControleEdit_1 = GUICtrlRead($controleEdit_1)
	Local $contenuControleEdit_2 = GUICtrlRead($controleEdit_2)
	GUICtrlSetData($controleEdit_1, "")
	Local $splitRecup = StringSplit($contenuControleEdit_1, @CRLF)
	GUICtrlSetData($controleEdit_1,$splitRecup[1] & @CRLF & @CRLF & $contenuControleEdit_2 & @CRLF)
	For $i = 3 To UBound($splitRecup) - 1
		GUICtrlSetData($controleEdit_1 & $splitRecup[$i] & @CRLF,1)
	Next
Quoiqu'ayant essayé @CRLF, @CR, @LF, chr(10) & chr(13), les paragraphes du deuxième au cinquième paragraphes du premier Contrôle Edit sont séparés par une ligne vide, ce que je ne souhaite pas. Lorsque je n'utilise pas ces codes, les deuxième au cinquième paragraphes du premier Contrôle Edit s'affichent à la queue-leu-leu.

Je vous remercie de m'aider à solutionner la question.
Modifié en dernier par GMH le mar. 26 mai 2020 10:32, modifié 1 fois.

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1873
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Lignes vides non souhaitées dans Contrôle Edit

#2

Message par TommyDDR »

Qu'entendez vous par paragraphe ? Un retour à la ligne ?

Vous souhaitez insérer le contenu complet du 2nd edit après le 1er retour à la ligne du 1er (en y ajoutant 1 ligne vide au dessus et en dessous) ?

Pour information, vous aurez beaucoup plus d'aide si votre code est exécutable sans devoir rajouter des choses dedans.
Malheureusement, nous ne pouvons pas prendre le temps de recréer complètement le code pour tester.
Même si ce n'est pas nécessaire à chaque fois, c'est toujours plus parlant de voir réellement un problème plutôt que de lire le code et l'exécuter dans notre tête ^^

PS : Vous avez de la chance, j'avais un peu de temps devant moi :
#pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico)
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)
Opt("MustDeclareVars", 1)

Global $gui
Global $taille[2] = [300, 300]
Global $controleEdit_1, $controleEdit_2
Global $txt1 =    "Ceci est le premier paragraphe du premier Contrôle Edit." & @CRLF & _
            "Ceci est le deuxième paragraphe du premier Contrôle Edit." & @CRLF & _
            "Ceci est le troisième paragraphe du premier Contrôle Edit." & @CRLF & _
            "Ceci est le quatrième paragraphe du premier Contrôle Edit." & @CRLF & _
            "Ceci est le cinquième paragraphe du premier Contrôle Edit."
Global $txt2 = "Ceci est le seul paragraphe du second Contrôle Edit."

$gui = GUICreate("", $taille[0], $taille[1])
GUISetOnEvent($GUI_EVENT_CLOSE, "quit", $gui)
$controleEdit_1 = GUICtrlCreateEdit($txt1, 5, 5, 290, 140)
$controleEdit_2 = GUICtrlCreateEdit($txt2, 5, 150, 290, 145)
GUISetState(@SW_SHOW, $gui)



Local $contenuControleEdit_1 = GUICtrlRead($controleEdit_1)
Local $contenuControleEdit_2 = GUICtrlRead($controleEdit_2)
GUICtrlSetData($controleEdit_1, "")
Local $splitRecup = StringSplit($contenuControleEdit_1, @CRLF, 3)
Local $textTotal = $splitRecup[0] & @CRLF & @CRLF & $contenuControleEdit_2 & @CRLF & @CRLF
For $i = 1 To UBound($splitRecup) - 1
   $textTotal &= $splitRecup[$i] & @CRLF
Next
GUICtrlSetData($controleEdit_1, $textTotal)


While(True)
   Sleep(10)
WEnd

Func quit()
   Exit
EndFunc
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5994
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lignes vides non souhaitées dans Contrôle Edit

#3

Message par mikell »

From ze fichier d'aide, page StringSplit :

"Note that the macro @CRLF is actually a 2 character string, so unless the flag parameter to $STR_ENTIRESPLIT extra blank lines will be generated as the string is split on both @CR and @LF."

Image
" 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
Tlem
Site Admin
Site Admin
Messages : 11554
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lignes vides non souhaitées dans Contrôle Edit

#4

Message par Tlem »

Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

GMH
Niveau 5
Niveau 5
Messages : 190
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] Lignes vides non souhaitées dans Contrôle Edit

#5

Message par GMH »

Tout était donc dans le flag ! Voilà une chose qui m'a toujours échappé. TommyDDR a choisi un flag à 3. Il cumule donc le 1 et le 2.

Le code de TommyDDR (merci d'avoir pris de votre temps pour l'écrire) utilise l'option Opt("MustDeclareVars", 1). Je suis allé voir son usage. Voilà encore une chose que je ne connaissais pas.

Grand merci à tous trois pour vos réponses, merci un peu tardif dû à des problèmes d'affichage du forum hier.

Répondre