Remplacement avec expressions régulières [Résolu]

zwyx 152 Messages postés jeudi 22 novembre 2007Date d'inscription 21 mars 2016 Dernière intervention - 4 avril 2008 à 16:40 - Dernière réponse : cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention
- 7 avril 2008 à 14:10
Bonjour à tous,

Je travaille sous Delphi6 et je souhaite effectuer des remplacements, de manière automatique, en utilisant les expressions régulières. J'ai déjà étudier pleins de tutoriaux concernant les expressions régulières, mais je n'arrive toujours pas à obtenir ce que je cherche, c'est pourquoi je sollicite votre aide.

Dans presque tout mon code (~3000 lignes), je n'ai mis d'espace ni avant, ni après, les opérateurs de test =, <, >, <=, >= et <>. J'ai remarqué tardivement que cela n'est pas correct d'après les normes standards de codage utilisées. Par contre, j'ai bien mis un espace avant et après le signe d'affectation :=.

Je cherche donc, pour ne pas le faire manuellement, l'expression régulière de remplacement, qui corrigerait mes espacements. De façon à transformer l'exemple suivant,

if i=0then
  i := 2
else if i<=2then
  if i<>84then
    i := 0;

en ce qui suit.

if i = 0then
  i := 2
else if i <= 2then
  if i <> 84then
    i := 0;

Je précise bien que ce n'est qu'un exemple bidon pour illustrer mon problème. Je n'ai bien évidemment pas écrit cet extrait de code.

Je vous remercie pour votre aide, et vous souhaite un bon week-end;
Afficher la suite 

Votre réponse

8 réponses

cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 4 avril 2008 à 20:57
+3
Utile
Pourquoi ne pas utiliser un outil qui fait tout ?
indentation, traitement des blancs etc etc

un clic et hop tout ton code nickel chrome et très beau

cantador
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_cantador
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 4 avril 2008 à 23:20
+3
Utile
Delforexp
bien sur !




Ken@vo




<hr size="2" width="100%" />



Code, Code, Codec !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Kenavo
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 5 avril 2008 à 12:37
0
Utile
Mais oui [mailto:ken@vo ken@vo] et qui va jusqu'à D 2007 !

cantador
Commenter la réponse de cs_cantador
cs_matrix1 175 Messages postés dimanche 16 février 2003Date d'inscription 15 avril 2008 Dernière intervention - 5 avril 2008 à 13:31
0
Utile
Ctrl+j
Commenter la réponse de cs_matrix1
zwyx 152 Messages postés jeudi 22 novembre 2007Date d'inscription 21 mars 2016 Dernière intervention - 5 avril 2008 à 16:49
0
Utile
Merci pour vos réponses.

J'essayerai Delforexp dès lundi.

Quant-à Ctrl+J, j'essayerai aussi lundi, parce que je n'ai pas Delphi6 chez moi, mais seulement au boulot.

Mais merci à tous.
Commenter la réponse de zwyx
zwyx 152 Messages postés jeudi 22 novembre 2007Date d'inscription 21 mars 2016 Dernière intervention - 7 avril 2008 à 10:56
0
Utile
Effectivement,

Que demander de plus que ce que fait DelForExp, "a freeware Pascal source code formatter for Delphi". Merci de m'avoir fait découvrir cet outil.

Si quelqu'un sait comment faire avec les expressions régulères, je serais curieux de connaître la solution, même si mon problème est résolu.

Bonne semaine à tous.
Commenter la réponse de zwyx
zwyx 152 Messages postés jeudi 22 novembre 2007Date d'inscription 21 mars 2016 Dernière intervention - 7 avril 2008 à 13:37
0
Utile
Pour les curieux comme moi qui seraient intéressés, j'ai trouvé comment rechercher avec les expressions régulières, toutes les occurences de comparaison, pour lesquelles je n'ai pas mis un espace avant et après l'opérateur.

La formule est la suivante (ce n'est sûrement pas la seule valable, ni la meilleure d'ailleurs):
[^ ](=|<>|<=?|>=?)[^ ]

Voici quelques explications:
la classe entre crochets,  [^ ]:
    tout caractère sauf un espace
le motif entre parenthèses, (=|<>|<=?|>=?):
    le signe = , ou
    le symbole différent <>, ou
    le signe <, suivi de 0 ou 1 fois le signe =, ou
    le signe >, suivi de 0 ou 1 fois le signe =

Bon maintenant, je ne sais pas s'il est possible de les mettre en forme automatiquement. Mais pour ça, il y a DelForExp !
Commenter la réponse de zwyx
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 7 avril 2008 à 14:10
0
Utile
Tu as le source de DelForExp...

cantador
Commenter la réponse de cs_cantador

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.