Notation objet

Bonjour,

Je fais mes premiers pas en notation objet,
contraint et forcé puisque ‘Document type’ et ‘SET DOCUMENT TYPE’ sont
déclarés obsolètes.
Je me suis donc exercé avec ‘Path to object’ et ‘Object to path’

J’ai bien coché dans les Propriétés/Compatibilité ‘Utiliser la
notation objet…’ et j’ai redémarré.

J’ai ensuite écrit une méthode qui remplace ‘Document type’ :
‘Extension_Lire’

// Cette méthode retourne l’extension (=suffixe) d’un fichier.

C_TEXT($1;$adresse) // en $1 l’adresse du fichier à traiter.
C_TEXT($0) // retourne en $0 le suffixe du fichier

$adresse:=$1

//$0:=Chaine_Apres_Dernier ($adresse;<>pt)
C_OBJECT($ob_Doc)
$ob_Doc:=New object
$ob_Doc:=Path to object($adresse)
$sufx:=$ob_Doc.extension // NE MARCHE PAS
$sufx:=OB Get($ob_Doc;“extension”)

If ($sufx="")
$0:=<>cv
Else
$0:=Delete string($sufx;1;1) // pour supprimer le point
End if

J’ai également créé une méthode qui remplace ‘SET DOCUMENT TYPE’ : ‘Extension_Modifier’

// Cette méthode modifie le suffixe d’un fichier.

C_TEXT($1;$adresse) // en $1 l’adresse du fichier à traiter
C_TEXT($2;$sufap) // en $2 le suffixe à appliquer

C_TEXT($0) // retourne en $0 le nom avec le nouveau suffixe

$adresse:=$1
$sufap:=$2

C_OBJECT($ob_Doc)
$ob_Doc:=New object
$ob_Doc:=Path to object($adresse)
$ob_Doc.extension:=$sufap// NE MARCHE PAS
OB SET($ob_Doc;“extension”;$sufap)
$adresse:=Object to path($ob_Doc)

$0:=$adresse

1° anomalie : En vérifiant la Structure, le CSM me signale les expressions comme $ob.attribut comme des noms de variables avec des points.

2° anomalie : dans la méthode ‘Extension_Lire’ :
la ligne $sufx:=$ob_Doc.extension ne marche pas
En revanche, la ligne $sufx:=OB Get($ob_Doc;“extension”) fonctionne.

3° anomalie : dans la méthode ‘Extension_Modifier’ :
$ob_Doc.extension:=$sufap ne marche pas
$adresse:=Object to path($ob_Doc) marche à moitié :

  • l’extension du fichier n’est pas modifiée
  • dans l’adresse retournée, l’extension est bien modifiée !

Tout cela laisse supposer que la notation objet n’est pas prise en compte.
Mais quand bien même, cela n’explique pas que Object to path($ob_Doc) ner modifie pas l’extension du fichier.

Avez vous une idée ?