OB get/set to dot not

The method under, when called by a macro, replaces a selected line of code like this
• before:
<code 4D>
$value_t:=OB get($object_o;“value”;Is text)
</code 4D>
• after:
<code 4D>
$value_t:=String($object_o.value)
//$value_t:=OB get($object_o;“value”;Is text)
</code 4D>

<code 4D>
//MACRO_OBversDot

LIRE PARAMÈTRE MACRO(Texte méthode surligné;$find_t)

TABLEAU ENTIER LONG($pos_al;0)
TABLEAU ENTIER LONG($len_al;0)
$rxOBset_t:=Nom commande(1220)+"\((.);"(.)";(.)\)" //:C1120 = OB FIXER
$rxOBget_t:="^(.
):="+Nom commande(1224)+"\((.);"(.)"(;(.*))?\)" //:C1224 = OB Lire
$replace_t:=""

Au cas ou
: (Trouver regex($rxOBset_t;$find_t;1;$pos_al;$len_al))
$objet_t:=Sous chaîne($find_t;$pos_al{1};$len_al{1})
$propriete_t:=Sous chaîne($find_t;$pos_al{2};$len_al{2})
$valeur_t:=Sous chaîne($find_t;$pos_al{3};$len_al{3})
$replace_t:=$objet_t+"."+$propriete_t+":="+$valeur_t
$replace_t:=$replace_t+"\r//"+$find_t

: (Trouver regex($rxOBget_t;$find_t;1;$pos_al;$len_al))
	$resultat_t:=Sous chaîne($find_t;$pos_al{1};$len_al{1})
	$objet_t:=Sous chaîne($find_t;$pos_al{2};$len_al{2})
	$propriete_t:=Sous chaîne($find_t;$pos_al{3};$len_al{3})
	$conversion_t:=""
	Si (Taille tableau($pos_al)>4)  //constante de conversion
		$typage_t:=Sous chaîne($find_t;$pos_al{5};$len_al{5})
		Au cas ou 
			: ($typage_t="Est un texte") | ($typage_t="Is text")
				$conversion_t:=Nom commande(10)  //Chaine
			: ($typage_t="Est un entier long") | ($typage_t="Est un numérique") | ($typage_t="Is longint") | ($typage_t="Is real")
				$conversion_t:=Nom commande(11)  //Num
			: ($typage_t="Est un booléen") | ($typage_t="Is Boolean")
				$conversion_t:=Nom commande(1537)  //Bool
			: ($typage_t="Est une date") | ($typage_t="Is date")
				$conversion_t:=Nom commande(102)  //Date
			Sinon 
				  //TRACE
		Fin de cas 
	Fin de si 
	
	Si ($conversion_t#"")
		$replace_t:=$resultat_t+":="+$conversion_t+"("+$objet_t+"."+$propriete_t+")"
	Sinon 
		$replace_t:=$resultat_t+":="+$objet_t+"."+$propriete_t
	Fin de si 
	$replace_t:=$replace_t+"\r//"+$find_t  //keep previous notation in comments
	
Sinon 
	BEEP  //motif non trouvé dans la sélection

Fin de cas

Si ($replace_t#"")
FIXER PARAMÈTRE MACRO(Texte méthode surligné;$replace_t)
Fin de si

//_
</code 4D>
macro code:

<text><method>MACRO_OBversDot</method></text>
c4d file:

Ajout de OB FIXER TABLEAU, d’un intérêt discutable, deux lignes au lieu d’une…
<code 4D>
//MACRO_OBversDot

LIRE PARAMÈTRE MACRO(Texte méthode surligné;$find_t)

TABLEAU ENTIER LONG($pos_al;0)
TABLEAU ENTIER LONG($len_al;0)
$rxOBsetArray_t:=Nom commande(1227)+"\((.);"(.)";(.)\)" //:C1227 = OB FIXER TABLEAU
$rxOBset_t:=Nom commande(1220)+"\((.
);"(.)";(.)\)" //:C1120 = OB FIXER
$rxOBget_t:="^(.):="+Nom commande(1224)+"\((.);"(.)"(;(.))?\)" //:C1224 = OB Lire
$replace_t:=""

Au cas ou
: (Trouver regex($rxOBsetArray_t;$find_t;1;$pos_al;$len_al))
$objet_t:=Sous chaîne($find_t;$pos_al{1};$len_al{1})
$propriete_t:=Sous chaîne($find_t;$pos_al{2};$len_al{2})
$valeur_t:=Sous chaîne($find_t;$pos_al{3};$len_al{3}) //the array
$replace_t:=$objet_t+"."+$propriete_t+":="+Nom commande(1472)+"\r" //New collection
$replace_t:=$replace_t+Nom commande(1563)+"("+$objet_t+"."+$propriete_t+";"+$valeur_t+")" //ARRAY TO COLLECTION
$replace_t:=$replace_t+"\r//"+$find_t

: (Trouver regex($rxOBset_t;$find_t;1;$pos_al;$len_al))
	$objet_t:=Sous chaîne($find_t;$pos_al{1};$len_al{1})
	$propriete_t:=Sous chaîne($find_t;$pos_al{2};$len_al{2})
	$valeur_t:=Sous chaîne($find_t;$pos_al{3};$len_al{3})
	$replace_t:=$objet_t+"."+$propriete_t+":="+$valeur_t
	$replace_t:=$replace_t+"\r//"+$find_t
	
: (Trouver regex($rxOBget_t;$find_t;1;$pos_al;$len_al))
	$resultat_t:=Sous chaîne($find_t;$pos_al{1};$len_al{1})
	$objet_t:=Sous chaîne($find_t;$pos_al{2};$len_al{2})
	$propriete_t:=Sous chaîne($find_t;$pos_al{3};$len_al{3})
	$conversion_t:=""
	Si (Taille tableau($pos_al)>4)  //constante de conversion
		$typage_t:=Sous chaîne($find_t;$pos_al{5};$len_al{5})
		Au cas ou 
			: ($typage_t="Est un texte") | ($typage_t="Is text")
				$conversion_t:=Nom commande(10)  //Chaine
			: ($typage_t="Est un entier long") | ($typage_t="Est un numérique") | ($typage_t="Is longint") | ($typage_t="Is real")
				$conversion_t:=Nom commande(11)  //Num
			: ($typage_t="Est un booléen") | ($typage_t="Is Boolean")
				$conversion_t:=Nom commande(1537)  //Bool
			: ($typage_t="Est une date") | ($typage_t="Is date")
				$conversion_t:=Nom commande(102)  //Date
			Sinon 
				  //TRACE
		Fin de cas 
	Fin de si 
	
	Si ($conversion_t#"")
		$replace_t:=$resultat_t+":="+$conversion_t+"("+$objet_t+"."+$propriete_t+")"
	Sinon 
		$replace_t:=$resultat_t+":="+$objet_t+"."+$propriete_t
	Fin de si 
	$replace_t:=$replace_t+"\r//"+$find_t
	
Sinon 
	BEEP  //motif non trouvé dans la sélection

Fin de cas

Si ($replace_t#"")
FIXER PARAMÈTRE MACRO(Texte méthode surligné;$replace_t)
Fin de si

//_
</code 4D>