Bonjour
Je ne sais pas si c'est possible avec le TRegEX de Delphi (10.3) mais peut-être que vous pourrez m'éclairer.
Je veux remplacer dans le code source de mon appli une fonction BDE par son équivalent Firedac.
Base.GetTableNames(Tables); doit être remplacé par Base.GetTableNames('', Base.Params.Database, '', Tables);
Voilà mon code et le résultat correct :
Résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 procedure TFormMain.btnTestsClick(Sender: TObject); var NomCompo, Centre, Liste, Fin: string; Match : TMatch; Reg4 : TRegEx; begin Reg4 := TRegEx.Create('(?<NomCompo>\w*)(?<Centre>\.GetTableNames\()(?<Liste>\w*)(?<Fin>\);)', [TRegExOption.roIgnoreCase]); Match := Reg4.Match('Base.GetTableNames(Tables);'); NomCompo := Match.Groups['NomCompo'].Value; Centre := Match.Groups['Centre'].Value; Liste := Match.Groups['Liste'].Value; Fin := Match.Groups['Fin'].Value; Log(NomCompo); Log(Centre); Log(Liste); Log(Fin); Log(Format('%s%s%s%s%s%s%s%s', [NomCompo, Centre, #39#39', ', NomCompo, '.Params.Database', ', '#39#39', ', Liste, ');'])); end;
Tout fonctionne et je pourrais me contenter de ça.Base
.GetTableNames(
Tables
);
Base.GetTableNames('', Base.Params.Database, '', Tables);
Mais comme je suis curieux (trop peut-être) je me dis que le TRegEx doit pouvoir faire ça en utilisant les groupes nommés que je récupère.
Sauf que ma curiosité est en train de me filer la migraine parce que je ne vois pas comment utiliser ça.
Est-ce que l'une ou l'un d'entre vous saurait me montrer (si c'est possible) la façon de faire ?
Partager