Page 1 sur 1
[..] Demande de création d'un traitement sur du texte
Posté : mar. 19 janv. 2010 19:54
par michel2295
bonjour j'ai été utilisateur de la v2 je suis perdu en v3
voici mon probleme assez urgent c'est un programme d'usinage sur machine commande numérique en 5 axes
ce programme usine une pale de réacteur et avec la modif je peut faire une répétition
j'ai un fichier tmp.txt contenant ceci
(DESSUS_T2 5X Ebauche Niveau 1_2)
N37 G0C-79.519B-65.
G151S1
N38 G0X453.129Y69.137 M3
N39 G0Z177.107 M8
N42 G0X453.129Y69.137
N43 G0Z177.107
N44 G1X453.98Y64.535Z175.349 FL18
N45 X453.744Y64.742Z174.496 FL19
N46 X453.508Y64.949Z173.643
N74 X449.076Y69.072Z156.821
N75 X448.446Y68.936Z156.698
N76 X447.979Y68.814Z156.599
N77 X447.506Y68.732Z156.516C-79.474B-65.
N78 X446.881Y68.596Z156.395C-79.414B-65.
N79 X446.102Y68.426Z156.246C-79.338B-65.
je voudrais ceci dans tmp.new par exemple
(DESSUS_T2 5X Ebauche Niveau 1_2)
L101=-79.519+L100
N37 G0CL101B-65.
G151S1
N38 G0X453.129Y69.137 M3
N39 G0Z177.107 M8
N42 G0X453.129Y69.137
N43 G0Z177.107
N44 G1X453.98Y64.535Z175.349 FL18
N45 X453.744Y64.742Z174.496 FL19
N46 X453.508Y64.949Z173.643
N74 X449.076Y69.072Z156.821
N75 X448.446Y68.936Z156.698
N76 X447.979Y68.814Z156.599
L101=-79.474+L100
N77 X447.506Y68.732Z156.516CL101B-65.
L101=-79.414+L100
N78 X446.881Y68.596Z156.395CL101B-65.
L101=-79.338+L100
N79 X446.102Y68.426Z156.246CL101B-65.
il faut chercher C prendre le numérique qui suit
ecrire sur la ligne d'avant
L101=.....+L100 ... est le numérique trouvé
ensuite reécrire la ligne en remplaçant le numérique par L101
ceci jusqu'a la fin du fichier
merci pour votre réponse
Re: [..] Demande de création d'un traitement sur du texte
Posté : mar. 19 janv. 2010 21:34
par ayuckers
Bonsoir, michel2295
Voici votre script, il vous suffiera de modifier les 2 chemin d'acces au debut du script.
j'espere ne pas avoir fait trop compliqué
dite mois si cela vous convient
► Afficher le texte
Code : Tout sélectionner
#include <file.au3>
#include <String.au3>
#include <Array.au3>
; declaration des variable
Global $Source = "C:\Autodev\tmp.txt"
Global $Dest = "C:\Autodev\tmp.new"
Global $Cpt, $Cvar, $NumVar
; calcule le nombre de ligne contenu dans le fichier
Global $CountLines = _FileCountLines($Source)
; ouverture des fichier 0 = lecture, 1 = ecriture
$FileSource = FileOpen($Source, 0)
; si le fichier n'existe pas il est crée automatiquement
$FileNew = FileOpen($Dest, 1)
; verrification de securité
If ($FileSource = -1) OR ($FileNew = -1) Then
MsgBox(0, "Erreur", "Probleme ouverture fichier")
Exit ; si erreur le script est arreter fin du programme
EndIf
; ecriture de la 1er ligne dans le Nouveau fichier
$line = FileReadLine($Source,1)
FileWriteLine($FileNew, $line)
; ici j'ai mis 2 pour commencer a la 2eme ligne du fichier
For $Cpt = 2 To $CountLines
$line = FileReadLine($Source,$Cpt)
If @error = -1 Then ExitLoop
; si il n'y a pas de C dans la ligne on la copie tel quel
If StringInStr($line, "C") = 0 Then
FileWriteLine($FileNew, $line) ; ecriture de la ligne dans le fichier
; si il y a un C dans la ligne alors un fait quelque modif
ElseIf StringInStr($line, "C") > 0 Then
; recherche de la valeur numerique contenu entre C et B
$Cvar =_StringBetween($line, "C-","B") ; cette fonction retourn un tableau
$NumVar = $Cvar[0] ; simple transfert de variable
; ecriture des lignes modifier
FileWriteLine($FileNew,"L101=-" & $NumVar & "+L100")
FileWriteLine($FileNew,StringReplace($line,"-"&$NumVar, "L101"))
EndIf
Next
MsgBox(0,"Convert", "Fini")
; fermeture des fichier ouvert
FileClose($FileSource)
FileClose($FileNew)
edit : Oups Sorry voila c'est fait
Re: [..] Demande de création d'un traitement sur du texte
Posté : mar. 19 janv. 2010 21:36
par timmalos
Merci d'editer mon message pour inserer les balises
Re: [..] Demande de création d'un traitement sur du texte
Posté : mar. 19 janv. 2010 22:37
par Tlem
@ayuckers
Aux vues de la question, je ne suis pas sure que la valeur numérique soit toujours négative, et que la première lettre qui suit soit la lettre B.
Si la ligne N°2 ressemble à ceci :
votre code ne fonctionne plus.
Il faudrait donc que michel2295 confirme la structure constante du fichier, ou alors modifier le traitement pour prendre en compte les autres possibilités.
Re: [..] Demande de création d'un traitement sur du texte
Posté : mar. 19 janv. 2010 23:56
par Tlem
Voilà comment je verrais le traitement de la ligne.
► Afficher le texte
Code : Tout sélectionner
$Line = 'N37 G0C-27.519B-65.'
$C = StringInStr($Line, 'C')
If $C > 0 Then
$aNb = StringRegExp($Line, '(\d{1,3}.\d{1,3})', 1)
If StringMid($Line, $C + 1, 1) = '-' Then $aNb[0] = '-' & $aNb[0]
$Line = 'L101=' & $aNb[0] & '+L100' & @CRLF & _
StringReplace($Line, $aNb[0], 'L101')
EndIf
MsgBox(0, '', $line)
Re: [..] Demande de création d'un traitement sur du texte
Posté : mer. 20 janv. 2010 16:03
par michel2295
bonjour et merci beaucoup
ça fonctionne nickell j'ai fait la modif car c n'est pas toujours positif
pour parfaire le prog il faudrait mettre le fichier d'entrée en variable poser la question
et pour le fichier de sortie récupérer le nom de fichier sans l'extension et mettre new automatiquement
et pour récupérer le C prendre en avançant caractere par caractere tant que l'on trouve un numérique comme ça ça fonctionne meme si il n'y a pas de B normalement on ne trouve que B ou fin de ligne et ça doit etre un numérique
encore merci
ayuckers a écrit :Bonsoir, michel2295
Voici votre script, il vous suffiera de modifier les 2 chemin d'acces au debut du script.
j'espere ne pas avoir fait trop compliqué
dite mois si cela vous convient
► Afficher le texte
Code : Tout sélectionner
#include <file.au3>
#include <String.au3>
#include <Array.au3>
; declaration des variable
Global $Source = "C:\Autodev\tmp.txt"
Global $Dest = "C:\Autodev\tmp.new"
Global $Cpt, $Cvar, $NumVar
; calcule le nombre de ligne contenu dans le fichier
Global $CountLines = _FileCountLines($Source)
; ouverture des fichier 0 = lecture, 1 = ecriture
$FileSource = FileOpen($Source, 0)
; si le fichier n'existe pas il est crée automatiquement
$FileNew = FileOpen($Dest, 1)
; verrification de securité
If ($FileSource = -1) OR ($FileNew = -1) Then
MsgBox(0, "Erreur", "Probleme ouverture fichier")
Exit ; si erreur le script est arreter fin du programme
EndIf
; ecriture de la 1er ligne dans le Nouveau fichier
$line = FileReadLine($Source,1)
FileWriteLine($FileNew, $line)
; ici j'ai mis 2 pour commencer a la 2eme ligne du fichier
For $Cpt = 2 To $CountLines
$line = FileReadLine($Source,$Cpt)
If @error = -1 Then ExitLoop
; si il n'y a pas de C dans la ligne on la copie tel quel
If StringInStr($line, "C") = 0 Then
FileWriteLine($FileNew, $line) ; ecriture de la ligne dans le fichier
; si il y a un C dans la ligne alors un fait quelque modif
ElseIf StringInStr($line, "C") > 0 Then
; recherche de la valeur numerique contenu entre C et B
$Cvar =_StringBetween($line, "C-","B") ; cette fonction retourn un tableau
$NumVar = $Cvar[0] ; simple transfert de variable
; ecriture des lignes modifier
FileWriteLine($FileNew,"L101=-" & $NumVar & "+L100")
FileWriteLine($FileNew,StringReplace($line,"-"&$NumVar, "L101"))
EndIf
Next
MsgBox(0,"Convert", "Fini")
; fermeture des fichier ouvert
FileClose($FileSource)
FileClose($FileNew)
edit : Oups Sorry voila c'est fait
Re: [..] Demande de création d'un traitement sur du texte
Posté : mer. 20 janv. 2010 17:45
par michel2295
bonjour vous avez raison il faut chercher C et un numérique et si il n'y a pas de numérique on écrit tel quel la ligne car C peut se trouver dans un commentaires
j'ai essayé d'intégrer ces lignes dans le prog a ayuckers qui fonctionne avec C- et B
je n'ai pas réussi la 1ligne fonctionne ensuite il ne prend plus le C
Tlem a écrit :Voilà comment je verrais le traitement de la ligne.
► Afficher le texte
Code : Tout sélectionner
$Line = 'N37 G0C-27.519B-65.'
$C = StringInStr($Line, 'C')
If $C > 0 Then
$aNb = StringRegExp($Line, '(\d{1,3}.\d{1,3})', 1)
If StringMid($Line, $C + 1, 1) = '-' Then $aNb[0] = '-' & $aNb[0]
$Line = 'L101=' & $aNb[0] & '+L100' & @CRLF & _
StringReplace($Line, $aNb[0], 'L101')
EndIf
MsgBox(0, '', $line)
Re: [..] Demande de création d'un traitement sur du texte
Posté : mer. 20 janv. 2010 22:53
par ayuckers
Voila j'ai apporter les modification :
- j'ai integré la solution de Tlem qui est effectivement tres pratique
pour que cette methode fonctionne il faut gérer l'offset
Comme la fonction "StringInStr" retourne dans notre cas la position de "C" dans
la chaine de caracter, la valeur retourné par cette fonction correspond donc a notre Offset
- j'ai rajouté une boite de dialogue pour rechercher le fichier TXT
-le fichier Modifier sera donc crée avec l'extension "New" au meme endroit que le fichier Text
► Afficher le texte
Code : Tout sélectionner
#include <file.au3>
#include <String.au3>
#include <Array.au3>
; declaration des variable
; ouverture d'une boite de dialogue pour recherche le fichier text
Global $Source = FileOpenDialog("Machine", @WindowsDir & "\", "Text (*.txt)", 1 )
Global $Dest ; = "C:\Autodev\tmp.new"
Global $Cpt, $Cvar, $NumVar, $C, $Cposition
Global $DecomposeChemin, $DecomposeNom
; calcule le nombre de ligne contenu dans le fichier
Global $CountLines = _FileCountLines($Source)
; decomposition du chemin d'acces puis du nom
$DecomposeChemin = StringSplit($Source, '\', 1)
$DecomposeNom = StringSplit($DecomposeChemin[$DecomposeChemin[0]], '.', 1)
$DecomposeNom[2] = "new" ; ici choix de l'extention
;recomposition du chemin d'acces avec la nouvelle extention
$DecomposeChemin[$DecomposeChemin[0]] = _ArrayToString($DecomposeNom,".",1)
$Dest = _ArrayToString($DecomposeChemin,"\",1)
; ouverture des fichier 0 = lecture, 1 = ecriture
$FileSource = FileOpen($Source, 0)
; si le fichier n'existe pas il est crée automatiquement
$FileNew = FileOpen($Dest, 1)
; verrification de securité
If ($FileSource = -1) OR ($FileNew = -1) Then
MsgBox(0, "Erreur", "Probleme ouverture fichier")
Exit ; si erreur le script est arreter fin du programme
EndIf
; ecriture de la 1er ligne dans le Nouveau fichier
$line = FileReadLine($Source,1)
FileWriteLine($FileNew, $line)
; ici j'ai mis 2 pour commencer a la 2eme ligne du fichier
For $Cpt = 2 To $CountLines
$line = FileReadLine($Source,$Cpt)
If @error = -1 Then ExitLoop
$Cposition = StringInStr($line, "C")
; si il n'y a pas de C dans la ligne on la copie tel quel
If $Cposition = 0 Then
FileWriteLine($FileNew, $line) ; ecriture de la ligne dans le fichier
; si il y a un C dans la ligne alors un fait quelque modif
ElseIf $Cposition > 0 Then
;************* methode Tlem **********************
; La variable $Cposition correspond a l'offset
$aNb = StringRegExp($Line, '(\d{1,3}.\d{1,3})', 1, $Cposition)
If StringMid($Line, $C + 1, 1) = '-' Then $aNb[0] = '-' & $aNb[0]
$Line = 'L101=' & $aNb[0] & '+L100' & @CRLF & _
StringReplace($Line, $aNb[0], 'L101')
$line = StringMid($line, 1, StringInStr($line, "C")) & StringMid($line,StringInStr($line, "C")+2,StringLen($line) )
FileWriteLine($FileNew,$Line)
EndIf
Next
MsgBox(0,"Convert", "Fini")
; fermeture des fichier ouvert
FileClose($FileSource)
FileClose($FileNew)
par contre je ne maitrise pas du tout la fonction
"StringRegExp" et je n'ai pas encore réelement
compris comment Tlem a fait cela...

Mais il reste tout de meme un petit probleme.... je cherche encore mais si Tlem a une Idée pour suprimé les "-"
apres modification de la ligne
EDIT : j'ai bricoler une solution ... sa devrais fonctionner, je l'ai integré au code
voici la ligne pour supprimer le caractere "-" juste apres le "C" quand une ligne est modifier
► Afficher le texte
Code : Tout sélectionner
$line = StringMid($line, 1, StringInStr($line, "C")) & StringMid($line,StringInStr($line, "C")+2,StringLen($line) )
je ne sait pas si il y a plus simple
Normalement le Script est Fonctionnel, reste plus qu'a tester

Re: [..] Demande de création d'un traitement sur du texte
Posté : jeu. 21 janv. 2010 21:57
par michel2295
bonjour et encore merci
je viens d'essayer tres bien
il fonctionne même si on a rien ou un tout autre caractere derriere ou C positif sans le -
j'ai rajouté
; si le fichier n'existe pas il est supprimé et crée automatiquement
if FileExists ( $Dest ) then
FileDelete ( $Dest )
endif
j'ai modifié
If StringMid($Line, $Cposition + 1, 1) = '-' Then $aNb[0] = '-' & $aNb[0]
il y avait la $C j'ai mis $Cposition $C n'existe plus
$line = StringMid($line, 1, StringInStr($line, "C")) & StringMid($line,StringInStr($line, "C")+1,StringLen($line) )
et j'ai mis +1 au lieu de+2 car il me "bouffait le L"
il se plante si il y a un C et pas de valeur numérique dans un commentaire par exemple
voici un fichier pour tester
(DESSUS_T2 5axes Ebauche Niveau 4_5)
N35 G151 S1
N37 G0C-80.54B-58.963
N42 G0X448.492Y45.897
N45 X456.237Y-0.589Z129.777
N47 X456.097Y-0.711Z129.862
N48 X455.417Y-0.753Z129.547C-80.457
N49 X455.19Y-0.767Z129.442C-80.428 B-58.731
N50 X454.398Y-0.848Z129.061C-80.329 A-58.525
N51 X453.606Y-0.928Z128.681C-80.229B-58.319
N52 X452.712Y-1.012Z128.255C-80.115
N56 X450.192Y-1.233Z127.066C-79.793B-57.435
N232 X307.802Y-1.832Z96.212C68.062B-25.441
N36 ( C tout seul pour tester)
N234 X302.969Y9.939Z123.381
merci j'éssaie un de comprendre la v3 je n'avais fait que quelques prog simple en v2
encore merci car j'ai deja traité mes fichiers avec la premiere version
Re: [..] Demande de création d'un traitement sur du texte
Posté : jeu. 21 janv. 2010 22:03
par timmalos
Michel, Utilisez la balise
Code : Tout sélectionner
pour tous vos codes, et EDITEZ vos messages.
Dans le cas contraire, ce sujet sera supprimé.
Re: [..] Demande de création d'un traitement sur du texte
Posté : jeu. 21 janv. 2010 22:11
par michel2295
excusez moi je n'avais pas compris balise
Code : Tout sélectionner
je pense qu'il suffit de mettre [code] et d'ecrire normalement ensuite
mais je vais essayer la prochaine fois
merci du conseil
Re: [..] Demande de création d'un traitement sur du texte
Posté : jeu. 21 janv. 2010 22:40
par Tlem
Pour l'utilisation des balises, voyez ceci :
http://www.autoitscript.fr/forum/viewto ... 896#p24896
Évitez aussi les citations qui sont inutiles.
Re: [..] Demande de création d'un traitement sur du texte
Posté : jeu. 21 janv. 2010 23:32
par Tlem
@ayuckers
La coloration syntaxique du code est réservée aux forums :
Pour répondre à votre question (
http://www.autoitscript.fr/forum/viewto ... 643#p27643),
StringRegExp() permet de rechercher et de renvoyer une information selon 'un masque de donnée' définit. Cela fait appel aux expressions régulières (
Expression rationnelle en Français

).
C'est un outil super puissant lorsqu'on le maitrise très bien, mais si comme moi vous bricolez, alors ce n'est pas toujours évident de trouver le bon Pattern.
Pour en revenir au code de michel2295, je verrais bien une autre solution pour trouver la chaine et faire le traitement sans risque d'erreur.
A première vue d'après les éléments donnés, la chaine à traiter serait de la forme :
Code : Tout sélectionner
X00 X0C-00.000X-00.000
Ou sans le signe négatif
X00 X0C00.000X00.000
J'ai remplacé les lettres qui ne sont pas un point de référence par la lettre générique X et les nombres par le 0.
Donc, fort de cela, on peut donc considérer que si dans la chaine je trouve :
alors j'ai bien la chaine à traiter.
Nous allons donc utiliser encore une fois les expressions régulières pour tester la chaine.
Si je ne dit pas de connerie, en référence à l'aide de la fonction
StringRegExp() alors nous auront :
Un caractère non numérique (\D) + un caractère numérique (\d) + la lettre C + le signe négatif (mais pas tout le temps) + 2 ou 3 caractères numériques (\d{2,3}) + un point + 2 ou 3 caractères numériques (\d{2,3}).
Ce qui nous amène (à cause du signe négatif) à deux Pattern possibles :
Il suffit donc d'utiliser la validation par expression régulière au lieu de chercher la lettre C dans la ligne.
En adaptant le code que j'avais donné précédemment, cela donne :
Code : Tout sélectionner
$Line = 'N37 G0C-27.519B-65.'
If (StringRegExp($Line, '(\D\dC-\d{2,3}.\d{2,3})', 0) Or StringRegExp($Line, '(\D\dC\d{2,3}.\d{2,3})', 0)) Then
$C = StringInStr($Line, 'C')
$aNb = StringRegExp($Line, '(\d{2,3}.\d{2,3})', 1)
MsgBox(0, '', $aNb[0])
If StringMid($Line, $C + 1, 1) = '-' Then $aNb[0] = '-' & $aNb[0]
$Line = 'L101=' & $aNb[0] & '+L100' & @CRLF & _
StringReplace($Line, $aNb[0], 'L101')
EndIf
MsgBox(0, '', $line)
Ce code, permet donc de valider et de traiter tout les cas de ce type :
Code : Tout sélectionner
N37 G0C-27.519B-65.
N37 G0C27.519B-65.
N37 G0C-270.51B-65.
N37 G0C270.51B-65.
N37 H1C-27.519C-65.00
N37 H1C27.519C-65.00
Re: [..] Demande de création d'un traitement sur du texte
Posté : lun. 25 janv. 2010 20:25
par michel2295
bonsoir et merci Tlem
je pense que StringRegExp ne convient pas
il faut chercher C et faire une boucle avancer d'un caractere et tester si +-.0123456789
voici ce que l'on doit traiter merci d'avance
Code : Tout sélectionner
N56 C1
N 5 C1.1B6
N56 C-1
N 5 C-1.1B6
N56 C0.333A66
N 5 C1.1B6
N56 C-1
N 5 C-1.1B6
Re: [..] Demande de création d'un traitement sur du texte
Posté : lun. 25 janv. 2010 22:10
par Tlem
Effectivement, vous introduisez des valeurs qui ne rentre pas dans le cadre de cette recherche :
Toutefois, l'expression régulière me semble quand même la meilleur solution dans votre cas puisque vous donnez un panel de valeurs très différentes et à moins de tester caractère par caractère, je ne vois pas comment faire autrement.
Voici donc une nouvelle version du 'testeur de ligne'

qui passe toutes les valeurs que vous avez indiqué (sauf l'exemple du début puisque les nouvelles valeurs sont différentes par l'espace avant le C

).
La base de la recherche est restreinte, mais correspond à un numérique + un espace + la lettre C + éventuellement le signe - + un numérique.
Ce qui limite quand même la recherche aux lignes de recherche et non aux lignes de commentaires.
► Afficher le texte
Code : Tout sélectionner
$Line = 'N37 G0 C-27.519B-65.'
;$Line = 'N56 C1'
;$Line = 'N 5 C1.1B6'
;$Line = 'N56 C-1'
;$Line = 'N 5 C-1.1B6'
;$Line = 'N56 C0.333A66'
;$Line = 'N 5 C1.1B6'
;$Line = 'N56 C-1'
;$Line = 'N 5 C-1.1B6'
If (StringRegExp($Line, '(\d C-\d{1,3})', 0) Or StringRegExp($Line, '(\d C\d{1,3})', 0)) Then
Local $Res
$aNb = StringSplit($Line, " C", 1)
$Res = $aNb[2]
If StringRegExp($Res, '([a-zA-Z])', 0) Then
$aNb = StringRegExp($Res, '([a-zA-Z])', 1)
$aNb = StringSplit($Res, $aNb[0], 1)
$Res = $aNb[1]
EndIf
$Line = 'L101=' & $Res & '+L100' & @CRLF & _
StringReplace($Line, $Res, 'L101')
EndIf
MsgBox(0, 'End', $line)
Re: [..] Demande de création d'un traitement sur du texte
Posté : mar. 26 janv. 2010 22:39
par michel2295
ça fonctionne super bien avec un blanc devant C pour parfaire et eviter ce cas il faudrait une fonction directe pour mettre un blanc devant C avant de passer au traitement
voici le code complet [blink]#include <file.au3>
#include <String.au3>
#include <Array.au3>
; declaration des variable
; ouverture d'une boite de dialogue pour recherche le fichier text
Global $Source = FileOpenDialog("Machine", @WindowsDir & "\", "Text (*.*)", 1 )
Global $Dest
Global $Cpt, $Cvar, $NumVar, $C, $Cposition
Global $DecomposeChemin, $DecomposeNom
; calcule le nombre de ligne contenu dans le fichier
Global $CountLines = _FileCountLines($Source)
; decomposition du chemin d'acces puis du nom
$DecomposeChemin = StringSplit($Source, '\', 1)
$DecomposeNom = StringSplit($DecomposeChemin[$DecomposeChemin[0]], '.', 1)
$DecomposeNom[2] = "new" ; ici choix de l'extention
;recomposition du chemin d'acces avec la nouvelle extention
$DecomposeChemin[$DecomposeChemin[0]] = _ArrayToString($DecomposeNom,".",1)
$Dest = _ArrayToString($DecomposeChemin,"\",1)
; ouverture des fichier 0 = lecture, 1 = ecriture
$FileSource = FileOpen($Source, 0)
; si le fichier n'existe pas il est supprimé et crée automatiquement
if FileExists ( $Dest ) then
FileDelete ( $Dest )
endif
$FileNew = FileOpen($Dest, 1)
; verrification de securité
If ($FileSource = -1) OR ($FileNew = -1) Then
MsgBox(0, "Erreur", "Probleme ouverture fichier")
Exit ; si erreur le script est arreter fin du programme
EndIf
; ecriture de la 1er ligne dans le Nouveau fichier
$line = FileReadLine($Source,1)
FileWriteLine($FileNew, $line)
; ici j'ai mis 2 pour commencer a la 2eme ligne du fichier
For $Cpt = 2 To $CountLines
$line = FileReadLine($Source,$Cpt)
If @error = -1 Then ExitLoop
$Cposition = StringInStr($line, "C")
; si il n'y a pas de C dans la ligne on la copie tel quel
If $Cposition = 0 Then
FileWriteLine($FileNew, $line) ; ecriture de la ligne dans le fichier
; si il y a un C dans la ligne alors un fait quelque modif
ElseIf $Cposition > 0 Then
;*************************
If (StringRegExp($Line, '(\d C-\d{1,3})', 0) Or StringRegExp($Line, '(\d C\d{1,3})', 0)) Then
Local $Res
$aNb = StringSplit($Line, " C", 1)
$Res = $aNb[2]
If StringRegExp($Res, '([a-zA-Z])', 0) Then
$aNb = StringRegExp($Res, '([a-zA-Z])', 1)
$aNb = StringSplit($Res, $aNb[0], 1)
$Res = $aNb[1]
EndIf
$Line = 'L101=' & $Res & '+L100' & @CRLF & _
StringReplace($Line, $Res, 'L101')
EndIf
;MsgBox(0, 'End', $line)
FileWriteLine($FileNew,$Line)
EndIf
Next
MsgBox(0,"Convert", "Fini")
; fermeture des fichier ouvert
FileClose($FileSource)
FileClose($FileNew)[/blink]
Re: [..] Demande de création d'un traitement sur du texte
Posté : mar. 26 janv. 2010 22:46
par michel2295
j'ai mis '[blink][/blink]' pour cacher le code mais ce n'était pas ça
que faut t'il mettre pour mettre 'voir' et donc cacher le code
Re: [..] Demande de création d'un traitement sur du texte
Posté : mer. 27 janv. 2010 11:18
par pierrotm777
Sélection votre code et cliquez sur 'spoiler="

Re: [..] Demande de création d'un traitement sur du texte
Posté : mer. 27 janv. 2010 16:08
par Tlem
J'ai décrit comment utiliser les outils du forum sur ce lien :
http://www.autoitscript.fr/forum/viewto ... 896#p24896
Pensez à rajouter les balises de code.
