Page 1 sur 1

[R] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : lun. 31 août 2020 10:46
par Boulanza
Bonjour tout le monde,
Je cherche à ajouter un mot dans les lignes d'un .txt
- Inserer « $text = " » à gauche de la première ligne d’un fichier text.txt et « " & @CRLF » à droite de tous les lignes du fichier text.txt.
- Inserer «$text &= "» à gauche de la deuxième ligne et ligne suivantes d’un fichier text.txt
Voir l'exemple ci-dessous:
Merci un infiniment pour votre aide.
Cordialement.

Code : Tout sélectionner

$text = " En cas de litige et à défaut d'accord amiable entre les parties, le présent contrat est régi, interprété et appliqué conformément au Droit Marocain. Tout litige relatif ou découlant de l'exécution du présent contrat est soumis aux tribunaux compétents dans le ressort du siège de la société. " & @CRLF & @CRLF
$text &= " En cas de litige et à défaut d'accord amiable entre les parties, le présent contrat est régi, interprété et appliqué conformément au Droit Marocain. Tout litige relatif ou découlant de l'exécution du présent contrat est soumis aux tribunaux compétents dans le ressort du siège de la société. " & @CRLF & @CRLF

Re: [..] Je cherche à automatiser l’insérer d’un mot dans les lignes d'un .txt

Posté : lun. 31 août 2020 11:32
par jchd
Comme ça ?

Code : Tout sélectionner

Local $s = "blah blah 1" & @CRLF & "blah blah 2" & @CRLF & "more legalese blah 3" & @CRLF & "final blah blah"  & @CRLF

Local $t = "Local $text" & @CRLF & StringRegExpReplace($s, '(.*)(\R|$)', '$text &= "$1" & @CRLF' & @CRLF)
ConsoleWrite($t & @LF)

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : lun. 31 août 2020 12:37
par Boulanza
Merci cher jchd pour votre réponse.
Résultat:
est.txt
$text &= "blah blah 1" & @CRLF
$text &= "blah blah 2" & @CRLF
$text &= "more legalese blah 3" & @CRLF
$text &= "final blah blah" & @CRLF
$text &= "" & @CRLF

-" blah blah 1 à n" = text de la première ligne à n ligne est inconnu. A remplacer par : A-z a-z 0-9 .,;:!?**/_- etc

j'ai trouvé ce code qui localise les lignes du .txt mais en-vain:

Code : Tout sélectionner

#include <Array.au3>
$text = WinGetText("est.txt", "")
MsgBox(0, "Text read was:", $text)
$array = StringSplit($text,@CRLF)
_ArrayDisplay($array)
$array2 = StringSplit($array[1],' ')
For $i = 1 to $array[0]
$array2 = StringSplit($array[$i],' ')
  MsgBox(0,'Texte trouvé',$array2[$i])
Next
Cordialement.

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : lun. 31 août 2020 13:01
par Boulanza
Pour une bonne compréhension de ma demande, j'ai trouvé le code ci-dessous qui représente exactement le résultat que je cherche:

Code : Tout sélectionner

#Include <Array.au3>

$txt = "AutoIt has been designed to be as small as possible and stand-alone with no external .dll files " & @crlf & _
"or registry entries required making it safe to use on Servers."  & @crlf & _
"Scripts can be compiled into stand-alone executables with Aut2Exe." & @crlf & _
@crlf & _
"Also supplied is a AB000DD4 combined COM and DLL version of AutoIt called AutoItX." & @crlf & _
"that allows you to add the unique features of AutoIt" & @crlf & _
"to your own favorite scripting or programming languages!" & @crlf & _
 @crlf & _
"Best of all, AutoIt continues to be free - but if you want to support the time, " & @crlf & _
"money and effort spent on the project and web hosting then you may donate at the AutoIt homepage." & @crlf

Msgbox(0,"", $txt)   ; initial text

$res = StringRegExpReplace($txt, '(?s).*\R{2}(.*?AB000DD4.*?)\R{2}.*', "$1")  ; isolate the part
$lines = StringRegExp($res, '(?m)^(\N*)\R?', 3)   ; read the part to array
_ArrayDisplay($lines)

Problématique:
Si le texte initiale est de cet forme :
AutoIt has been designed to be as small as possible and stand-alone with no external .dll files
or registry entries required making it safe to use on Servers.
Scripts can be compiled into stand-alone executables with Aut2Exe.

Also supplied is a AB000DD4 combined COM and DLL version of AutoIt called AutoItX.
that allows you to add the unique features of AutoIt
to your own favorite scripting or programming languages!

Best of all, AutoIt continues to be free - but if you want to support the time,
money and effort spent on the project and web hosting then you may donate at the AutoIt homepage.

Donc: Je cherche exactement un scripte qui donne le résultat du code ci-dessus.
Merci pour votre compréhension...
Cordialement.

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : lun. 31 août 2020 21:29
par Boulanza
J'ai pu obtenir avec le code suivant 50% comme solution à mon problème.
Code:

Code : Tout sélectionner

#Include <File.au3>
Dim $StrArray
_FileReadToArray("est.txt", $StrArray)
For $i = 1 To $StrArray[0]
    $StrArray[$i] &= ' " & @crlf & _'
Next
_FileWriteFromArray("result.txt",  $StrArray, 1)
Résultat:

Code : Tout sélectionner

Si le texte initiale est de cet forme :" & @crlf & _
AutoIt has been designed to be as small as possible and stand-alone with no external .dll files" & @crlf & _
or registry entries required making it safe to use on Servers." & @crlf & _
Scripts can be compiled into stand-alone executables with Aut2Exe." & @crlf & _
" & @crlf & _
Also supplied is a AB000DD4 combined COM and DLL version of AutoIt called AutoItX." & @crlf & _
that allows you to add the unique features of AutoIt" & @crlf & _
to your own favorite scripting or programming languages!" & @crlf & _
" & @crlf & _
Best of all, AutoIt continues to be free - but if you want to support the time," & @crlf & _
money and effort spent on the project and web hosting then you may donate at the AutoIt homepage." & @crlf & _


Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 02:18
par jchd
Je ne vois toujours pas pourquoi mon exemple ne convient pas, mais bon...

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 10:21
par Boulanza
Bonjour Monsieur jchd,
Votre exemple du code ci-dessous, est ingénieux. Mon problème et que je reçois des document notamment des fichiers texte de plus de 100 pages. Ce qui reviens à dire que "blah blah 1" & @CRLF & "blah blah 2" & @CRLF &... sont inconnu (pages). D'un autre coté les options par exemple : $s, '(.*)(\R|$)' et autres qui permettent à traiter mon cas sont absent (formation) sur les sites AutoIt, ce qui me pousse à patauger afin d'arriver à une solution hasardeuse... Voir exemple suivant:

Code : Tout sélectionner

#Include <File.au3>
#include <File.au3>
; Pour supprimer & de la dernère ligne du fichier texte = parfait por notre cas
$FILE = "resultat1.txt"
_ReplaceStringInFile($FILE, "& @crlf_", " @crlf  _", 0,2)
Cordialement.
Code jchd:

Code : Tout sélectionner

Local $s = "blah blah 1" & @CRLF & "blah blah 2" & @CRLF & "more legalese blah 3" & @CRLF & "final blah blah"  & @CRLF
Local $t = "Local $text" & @CRLF & StringRegExpReplace($s, '(.*)(\R|$)', '$text &= "$1" & @CRLF' & @CRLF)
ConsoleWrite($t & @LF)

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 10:41
par Boulanza
Suite pour Monsieur jchd,
En ajustant votre script avec le code suivant je crois qu'en aura quelque chose qui ressoudera ce problème.

Code : Tout sélectionner

test1()
Func test1()
Dim $StrArray1
_FileReadToArray("est.txt", $StrArray1)

For $i = 1 To $StrArray1[0]
    $StrArray1[$i] &= '" & @crlf & _'
Next
_FileWriteFromArray("resultat1.txt",  $StrArray1, 1)
EndFunc

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 10:57
par jchd
C'est une émasculation, pas une adaptation !

Code : Tout sélectionner

test1()

Func test1()
	Local $s = FileRead("est.txt")
	; if @error ...
	Local $t = "Local $text" & @CRLF & StringRegExpReplace($s, '(.*)(\R|$)', '$text &= "$1" & @CRLF' & @CRLF)
	FileDelete("resultat1.txt")
	FileWrite("resultat1.txt", $t)
	; if @error ...
EndFunc   ;==>test1
D'un autre coté les options par exemple : $s, '(.*)(\R|$)' et autres qui permettent à traiter mon cas sont absent (formation) sur les sites AutoIt
Qu'est-ce qui est absent chez vous ?

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 11:49
par Boulanza
Bonjour,
Bravo, le script est parfait, rien à dire.
Javais aucun doute en parcourant les forum autoit Fr/An/Es... j'ai vite compris que vous êtes un chevronné dans le domaine de développement des script Autoit, j'avoue aussi que l'équipe de Autoit est virtuose dans son domaine d'aide et de conseil...
Je vous transmets tous mes respects, ainsi qu'à tous les membres de AutoIt.
Cordialement.

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 11:51
par Boulanza
Que signifie ces instructions par exemple: '(.*)(\R|$)', '$text &= "$1" & @CRLF' & @CRLF'

Re: [..] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 14:11
par mikell
Boulanza a écrit : mar. 01 sept. 2020 11:49Bravo, le script est parfait, rien à dire.
Il l'était déjà dans le post #2, vu que c'est le même :mrgreen:

Votre problème récurrent, c'est que ce que vous voulez n'est pas une aide susceptible de vous mettre sur la bonne voie. Vous n'êtes satisfait que si on vous fournit le script complet prêt à l'emploi...

Re: [R] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : mar. 01 sept. 2020 15:02
par Boulanza
Désolé mikell, ce n'est pas vais, j'ai cherché d'autres possibilités mais en vain: voir mes réponses ci-dessus. Je ne maîtrise pas les instructions comme par exemple: '(.*)(\R|$)', '$text &= "$1" & @CRLF' & @CRLF' etc. En plus j'ai un principe de respecter les travaux (oeuvres) réalisés par les membres de AutoIt, je croie que vous l'avez déjà remarqué dans mes demandes. Lorsque je peux solutionner un problème, avec vos suggestions, je le fait et je le partage sans hésitation.
Cordialement.

Re: [R] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : ven. 04 sept. 2020 11:10
par Boulanza
Bonjour tout le monde,
J'ai un petit souci concernant le nombre de lignes lors de l’exécution de scripte.
Le contrat objet dudit test comprend plus de 1.000 ligne or après exécution il y a que 123 lignes qui apparaissent.
C'est à dire : $FrOrigine001 = GUICreate("Nos Conditions :", 1170, 880, -1, -1) est limité à 123 lignes.
Je n'ai pas d'idée préconçue quant à la réponse à apporter à cette question. votre aide est grandement appréciée.
Cordialement.

Re: [R] Je cherche à ajouter un mot dans les lignes d'un .txt

Posté : ven. 04 sept. 2020 11:27
par Boulanza
Suite à la précédente demande : #14 Message par Boulanza » ven. 04 sept. 2020 11:10
J'ai trouvé la cause à mon problème:
Il vient de la fonction : GUICtrlSetState($_FrhEdit,$GUI_DISABLE)
Cette fonction est primordiale pour moi sinon indispensable pour désactiver copier-coller du texte du contrat.
La solution à ce problème consiste à garder la fonction "GUICtrlSetState($_FrhEdit,$GUI_DISABLE)" active en libérant le nombre de lignes visibles à la lecture.
Cordialement.