ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

L'utilisation et la création des scripts.
Marc DELDEM
Messages : 1036
Enregistré le : 20 juin 2009, 01:01

ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Marc DELDEM » 24 avr. 2020, 13:54

ATTENTION,
Dans la version 10.4.1.158, il y a un changement de comportement sur la fonction SUBSTRING:

Le script ci-dessous, qui donnait sur la version précédente de Prism les résultats attendus, ne fonctionne plus:

Code : Tout sélectionner

Date$="24/04/2020 11:39:56"
REM Date$ est de la forme JJ/MM/AAAA HH:MM:SS
SUBSTRING Date$ 1 2 JJ$
SUBSTRING Date$ 4 2 MM$
SUBSTRING Date$ 7 4 AAAA$
PRINT "Décomposition de la date: Année:" AAAA$ ", Mois:" MM$ ", Jour:" JJ$
Le résultat affiché est:
Décomposition de la date: Année:, Mois:, Jour:24
Script terminé ...
Il faut modifier maintenant le code de manière à ce que le 3ième paramètre de la fonction SUBSTRING ne soit plus le nombre de caractères souhaité mais le numéro du caractère de fin de découpe.
Il faut donc faire pour mon exemple:

Code : Tout sélectionner

Date$="24/04/2020 11:39:56"
REM Date$ est de la forme JJ/MM/AAAA HH:MM:SS
SUBSTRING Date$ 1 2 JJ$
SUBSTRING Date$ 4 5 MM$
SUBSTRING Date$ 7 10 AAAA$
PRINT "Décomposition de la date: Année:" AAAA$ ", Mois:" MM$ ", Jour:" JJ$
Cela risque de mettre la pagaille dans pas mal de scripts...

Marc

Avatar du membre
Marc SERRAU
Messages : 136
Enregistré le : 20 juin 2009, 11:08
Localisation : UAI B24 CESSON (77)
Contact :

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Marc SERRAU » 25 avr. 2020, 21:10

Bonsoir,
Le genre de modification qui sans crier gare est très gênante. Quel intérêt de conserver le même nom de fonction (et même de modifier cette dernière) si cela doit fatalement gêner les utilisateurs ? Cette fois, je ne dis pas merci aux copains, d'autant plus, qu'il y a un bug si le troisième paramètre est égal au second (pour les sous-chaines de 1 caractère). Dans ton exemple

Date$="24/04/2020 11:39:56"
SUBSTRING Date$ 1 1 JJ$

JJ$ ne contient pas juste le caractère "2" mais rien...

:evil:

Soyez sympa de corriger rapidement car cela bloque pas mal de scripts. Là je dirai "Merci !"
Marc Serrau
http://www.astrosurf.com/noctambule - Utilisateur de Prism depuis le XXème siècle.
UAI B24 - CESSON (F-77) & A77 - DAUBAN (F-04)

Cyril Cavadore
Messages : 3941
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Cyril Cavadore » 26 avr. 2020, 02:14

Oui, je trouve ça "moyen" comme c'est Stéphane qui a fait les modifs je viens de lui en parler.
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403

Marc DELDEM
Messages : 1036
Enregistré le : 20 juin 2009, 01:01

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Marc DELDEM » 26 avr. 2020, 08:20

A la décharge de Stéphane, dans la doc (CHM), si on tape SUBSTRING dans l'index, on tombe sur une page d'aide qui commence avec la fonction CUTSTR mais qui ensuite est bien le prototype de la fonction SUBSTRING:

Syntaxe :
SUBSTRING In$ Deb Fin Out$

Variables :

Code : Tout sélectionner

Paramètres	Entrées / Sorties  	Type                    Description 
Line$           Entrée                  Chaîne de caractère  	Chaîne de caractère à couper 
Deb             Entrée                  Entier                  Numéro caractère de début de découpe 
Fin             Entrée                  Entier                  Numéro caractère de fin de découpe 
Out$            Sortie                  Chaîne de caractère  	Mot coupé 
S'il est parti du principe que la doc était juste, il a corrigé la fonction en pensant qu'il y avait un bug.

Marc

Stéphane Charbonnel
Messages : 421
Enregistré le : 18 juin 2009, 16:24
Contact :

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Stéphane Charbonnel » 26 avr. 2020, 14:48

Merci Marc, c'est exactement ça ... pour que ça colle à la doc (mal aiguillée au demeurant). Et comme personne ne s'était plaint de la non correspondance entre la syntaxe affichée dans la doc et celle de la fonction, je me disais que personne n'avait dû l'utiliser et donc à rectifier avant que quelqu'un se plaigne de la non correspondance ... Perdu !

Pour éviter tout "scandale", j'ai conseillé à Cyril de la remettre comme elle était (la doc devenant fausse mais tant pis !).
Je créerais d'ici peu une fonction SUBSTRING2 qui elle respectera l'aide de la fonction SUBSTRING donnée par Marc Deldem.
Les deux fonctions SUBSTRING et SUBSTRING2 seront clairement documentées dans la partie aide / Script de ce forum et de ce fait celle de la fonction SUBSTRING sera aussi rectifiée.

Cordialement
Stéphane


Avatar du membre
Marc SERRAU
Messages : 136
Enregistré le : 20 juin 2009, 11:08
Localisation : UAI B24 CESSON (77)
Contact :

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Marc SERRAU » 01 mai 2020, 10:55

Ok,
Quand pensez-vous pouvoir remettre ces fonctions en service ?
Merci pour le travail accompli.
Marc Serrau
http://www.astrosurf.com/noctambule - Utilisateur de Prism depuis le XXème siècle.
UAI B24 - CESSON (F-77) & A77 - DAUBAN (F-04)

Jean-Marc Mari
Messages : 42
Enregistré le : 20 juin 2009, 09:56
Localisation : Biot, France
Contact :

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Jean-Marc Mari » 05 mai 2020, 23:15

Bonsoir,

Ce changement empêche mon script de fonctionner. Pour extraire le premier caractère d'une chaîne, j'utilise :

Code : Tout sélectionner

SubString objType$ 1 1 objType$
Maintenant, ça ne fonctionne plus. La première chose ayant changé c'est que pour démarer au premier caractère, il faut que je mette 0 au lieu de 1.

Le problème est que si j'écris :

Code : Tout sélectionner

SubString objType$ 0 0 objType$
je ne récupère pas de caractère.

Si j'écris :

Code : Tout sélectionner

SubString objType$ 0 1 objType$
je récupère les deux premiers caractères. Or, j'ai absolument besoin de récupérer le premier caractère et lui seul.
Y a-t-il moyen de faire autrement ? Ou alors serait-il possible de faire une correction ?

Merci d'avance.
Cordialement,
Jean-Marc

Cyril Cavadore
Messages : 3941
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Cyril Cavadore » 07 mai 2020, 20:25

Mise a jour ici

https://www.dropbox.com/s/i9rpv6qut99tz ... m.zip?dl=1

Avec cette fonction.
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403

Avatar du membre
Marc SERRAU
Messages : 136
Enregistré le : 20 juin 2009, 11:08
Localisation : UAI B24 CESSON (77)
Contact :

Re: ATTENTION - Changement de comportement - SUBSTRING - Version 10.4.1.158

Message par Marc SERRAU » 07 mai 2020, 21:23

SUBSTRING fonctionne bien comme avant. Super, merci à tous !

Bon courage à tous pour la fin du confinement ! :D
Marc Serrau
http://www.astrosurf.com/noctambule - Utilisateur de Prism depuis le XXème siècle.
UAI B24 - CESSON (F-77) & A77 - DAUBAN (F-04)

Répondre